2017-02-14 52 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