Actualmente tengo una Raffle de colección donde cada documento contiene un raffle_id y un user_id . Esta colección sirve para contener un boleto de rifa que un usuario ha comprado, por lo tanto, podría haber múltiples boletos por usuario para muchos sorteos diferentes. He consultado esta colección para devolver todas las apariciones de raffle_id que coincidan con una identificación específica que pasé, por lo tanto, si tengo 10 rifas diferentes e hipotéticamente consulté solo los boletos que pertenecen a la rifa "Gana un collar nuevo". , solo recibiría estas entradas respectivas (no boletos que pertenecen a "Gana un auto nuevo"). La matriz contiene las identificaciones de los usuarios.
p.ej:
myArr[0] = "104abc191"; myArr[1] = "134gkd131"; ... myArr[n] = "404fdc259";Dado que esta matriz contiene distintos usuarios que han ingresado a un sorteo específico, su tamaño puede ser extremadamente grande, extremadamente pequeño o estar en algún punto intermedio.
Dado que solo tengo una serie de cadenas que representan las identificaciones de usuario, quiero poder consultar mi colección de User en función de estas identificaciones para encontrar información adicional sobre el usuario (correo electrónico, teléfono, etc.). ¿Cómo consultaría una colección para cualquier documento que coincida con cualquier identificación en mi matriz?
Pensé en hacer algo similar a lo siguiente:
User.find({ $or: [{ "id": myArr[0] }, { "id": myArr[1] }, ..., { "id": myArr[n] }); No estoy seguro si puedo incluir más de 2 criterios en la matriz $or (supongo que sí), sin embargo, esto no parece ser muy práctico dado que mis criterios de búsqueda podrían ser muy grandes dependiendo de cuántos usuarios distintos han entrado en este sorteo específico.
¿Puedo consultar una colección con algo como "Si la colección contiene documentos que tienen una id coincidente con cualquier valor en una matriz determinada, agréguelos a la matriz que se devolverá"?
¿Qué tal $in ( https://docs.mongodb.com/manual/reference/operator/query/in/ )
User.find({ id: { $in: myArr }});