如何在Mongoose中执行id数组查询?

TIM*_*MEX 37 mongoose mongodb node.js

假设我有一个名为的模型User.我有一个带有对象ID的数组.

我想获得与我拥有的ID数组"相交"的所有用户记录.

User.find({ records with IDS IN [3225, 623423, 6645345] }, function....
Run Code Online (Sandbox Code Playgroud)

kbe*_*erg 84

这是一种使用$ in运算符的mongoosey方法.

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

我发现点符号在查询子文档时非常方便.

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


nee*_*ebz 39

您需要使用$ in运算符>

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

例如:

Users.find( { "fb" : { id: { $in : arrayOfIds } } }, callback );
Run Code Online (Sandbox Code Playgroud)

  • `Users.find({"fb":{id:{$ in:arrayOfIds}}});`我还没有测试过,但它应该工作 (6认同)
  • 但是mongoose的语法是什么? (4认同)
  • 这是相同的语法.`.find()`是一个mongodb函数. (2认同)
  • “fb”怎么了?这对我不起作用,但这对我有用:`Users.find({_id: {$in:arrayOfIds} })` (2认同)

Sag*_*fek 9

User.where({ records: { $in: [3225, 623423, 6645345] } }, function ...
Run Code Online (Sandbox Code Playgroud)

更多信息:http://docs.mongodb.org/manual/reference/operator/query/