Este es un documento de usuario en mi mongodb, también hay muchos otros documentos de usuario. Y tener una variedad de intereses como este
myInterests['gaming','reading']Esta matriz puede ser dinámica en el futuro.
Quiero escribir una consulta en la que pueda obtener la lista de aquellos usuarios que tienen estos 2 intereses o al menos 1 de ellos, ¿cómo puedo escribir una consulta para esto?
router.get("/", auth, async function (req, res) { const { interests: myInterests } = req.user; const users = await User.find({ interests: { $in: [myInterests] }, }).select({ email: 1, interests: 1 }); console.log(users); });He probado este código, pero este código me está dando la lista de aquellos usuarios que tienen estos 2 intereses. También quiero obtener aquellos usuarios que tengan al menos 1 de los elementos de esta matriz.
myInterests ya es una matriz. La consulta debería ser así.
interests: { $in: myInterests, }en vez de
interests: { $in: [myInterests], }De lo contrario, busca las coincidencias exactas utilizando la matriz 2D.
Zona de juegos de trabajo => https://mongoplayground.net/p/D2_JwvBUn3k