2013-02-27 69 views
35

的名單我有一個返回字符串的MongoDB ID的列表的過程,蒙戈,發現通過IDS

[512d5793abb900bf3e20d012, 512d5793abb900bf3e20d011] 

我想火單個查詢到蒙戈並獲得匹配的文檔背面以相同的順序作爲清單。

什麼是shell符號來做到這一點?

回答

57

將字符串轉換爲ObjectIds後,可以使用$in運算符來獲取列表中的文檔。沒有任何查詢符號可以按照列表順序返回文檔,但請參閱here以瞭解處理該文檔的一些方法。

var ids = ['512d5793abb900bf3e20d012', '512d5793abb900bf3e20d011']; 
var obj_ids = ids.map(function(id) { return ObjectId(id); }); 
db.test.find({_id: {$in: obj_ids}}); 
0

如果您的最終目的是通過您的預獲取ID列表獲取文檔的順序,您可以將查詢結果轉換爲映射(id爲key,doc爲值),然後遍歷ids列表以獲取文檔。

+0

我在查詢後會返回結果...?代碼示例將不勝感激。 – Will 2013-02-27 03:39:51