如何在mongoDB中匹配和查找数组和文档

时间:2017-02-14 10:34:44

标签: javascript arrays node.js mongodb mongoose

我有一组ID,例如

[ID1,ID2,ID3 ......]

我有一个包含文档的集合,例如

{
    "_id" : ObjectId("1111111111111"),
    "phoneNumber" : "1234567891",
    "fid" : "id1",
    "pid" : "abcd",
    "activeFlag" : true
},
{
    "_id" : ObjectId("2222222222"),
    "phoneNumber" : "1234567891",
    "fid" : "id1",
    "pid" : "efgh",
    "activeFlag" : true
},
{
    "_id" : ObjectId("33333333333"),
    "phoneNumber" : "1234567891",
    "fid" : "id2",
    "pid" : "xyz",
    "activeFlag" : true
},
{
    "_id" : ObjectId("4444444444444"),
    "phoneNumber" : "1234567891",
    "fid" : "id3",
    "pid" : "mnop",
    "activeFlag" : true
}

我想在我的ID数组中找到与fid匹配的文档, 我也想根据_id对它进行排序,限制是9。

如果获取id1,那么我需要所有fid为id1的文档,就像那样。

1 个答案:

答案 0 :(得分:1)

这个脚本应该可以解决问题

var listId = ["id1", "id2", "id3"]; 

var cursor =  db.collection.find({fid: {$in: listId}}).sort({_id: 1}).limit(9); 


// iterate over documents
if (cursor != null && cursor.hasNext()){
  while (cursor.hasNext()){
   // print documents
   print(JSON.stringify(cursor.next())); 
  }
}

运行它,创建文件名script.js,复制上面的代码,然后运行命令

mongo databaseName < script.js