web-dev-qa-db-fra.com

Comment effectuer une requête sur un tableau id dans Mongoose?

Disons que j'ai un modèle appelé User. J'ai un tableau avec les ID d'objet.

Je souhaite obtenir tous les enregistrements utilisateur qui "se croisent" avec le tableau d'identifiants que j'ai.

User.find({ records with IDS IN [3225, 623423, 6645345] }, function....
32
TIMEX

Vous devez utiliser l'opérateur $ in>

https://docs.mongodb.com/manual/reference/operator/query/in/#op._S_in

Par exemple:

Users.find( { "fb" : { id: { $in : arrayOfIds } } }, callback );
29
neebz

Voici une façon mongoose d'utiliser l'opérateur $ in.

User.find()
  .where('fb.id')
  .in([3225, 623423, 6645345])
  .exec(function (err, records) {
    //make magic happen
  });

Je trouve la notation par points assez pratique pour interroger des sous-documents.

http://mongoosejs.com/docs/queries.html

79
kberg
User.where({ records: { $in: [3225, 623423, 6645345] } }, function ...

plus d'infos ici: http://docs.mongodb.org/manual/reference/operator/query/

9
Sagiv Ofek

Pour moi, travaille de cette façon

IDs=["5b00c4b56c7fb80918293dd9","5b00c4b56c7fb80918293dd7",...]
const users= await User.find({records:IDs}) 
0
Alex Montoya