Как выполнить запрос массива идентификаторов в Mongoose? - PullRequest
35 голосов
/ 28 апреля 2011

Допустим, у меня есть модель с именем User. У меня есть массив с идентификаторами объектов.

Я хочу получить все пользовательские записи, которые «пересекаются» с имеющимся у меня массивом идентификаторов.

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

Ответы [ 4 ]

82 голосов
/ 13 ноября 2012

Вот простой способ использовать оператор $ in.

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

Мне кажется, что точечная нотация очень удобна для запросов во вложенных документах.

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

33 голосов
/ 28 апреля 2011

Вам необходимо использовать оператор $ in>

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

Например:

Users.find( { "fb" : { id: { $in : arrayOfIds } } }, callback );
9 голосов
/ 11 января 2014
User.where({ records: { $in: [3225, 623423, 6645345] } }, function ...

подробнее здесь: http://docs.mongodb.org/manual/reference/operator/query/

0 голосов
/ 20 мая 2018

Для меня, работай так

IDs=["5b00c4b56c7fb80918293dd9","5b00c4b56c7fb80918293dd7",...]
const users= await User.find({records:IDs}) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...