2017-02-14 64 views
0

阵列和文件我有ID的像例如如何匹配和MongoDB中

阵列[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 
 
}

我想找到与FID在我的ID阵列ID匹配该文件, 也我想根据_id排序,并且限制为9.

如果采用id1,那么我需要所有具有fid作为id1的文档,就像那样。

+0

你有什么迄今所做?任何努力来解决它? – Saleem

回答

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 
+0

Thankyou felix :-)它的工作完美! – Sabreena

+0

如何将它用于我的文档的_id字段?我试过了,{_id:{$ in:mongoose.Types.ObjectId(listId)} – Sabreena

+0

@Sabreena只是把ObjectId放在你的listId中:var listId = [ObjectId(“12454545”),ObjectId(“54575755454”),ObjectId “4545544545”)];' – felix