wake-up-neo.com

Wie führe ich eine ID-Array-Abfrage in Mongoose durch?

Nehmen wir an, ich habe ein Modell namens User. Ich habe ein Array mit Objekt-IDs.

Ich möchte alle Benutzerdatensätze abrufen, die sich mit dem Array von IDs überschneiden, die ich habe.

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

Sie müssen den Operator $ in verwenden

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

Zum Beispiel:

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

Hier ist eine mongoosey-Methode, um den $ in-Operator zu verwenden.

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

Ich finde die Punktnotation sehr praktisch für das Abfragen in Subdokumente.

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

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

weitere Informationen hier: http://docs.mongodb.org/manual/reference/operator/query/

9
Sagiv Ofek

Arbeit für mich so

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

IDs ist das Array von Objekt-IDs:

const ids =  [
    '4ed3ede8844f0f351100000c',
    '4ed3f117a844e0471100000d', 
    '4ed3f18132f50c491100000e',
];

Mit Rückruf:

User.find().where('_id').in(ids).exec(callback);

Mit Async-Funktion:

records = await User.find().where('_id').in(ids).exec();
0
SnnSnn