2015-12-15 27 views
1

我有一個id的字符串數組,我想用find函數。在MongoDB中查找帶有字符串ID數組的文檔

db.companies.find({ _id : { $in : arr} }); 

arr看起來像這樣,

[ '563a2c60b511b7ff2c61e938', '563a2c60b511b7ff2c61e8b7' ]; 

我從documentation看到ObjectID()不接受陣列。我該如何搜索這個數組的文檔列表?我將不得不重新創建數組,以便所有元素都是ObjectID的?

+0

的輸出是什麼時候你運行該查詢? – TbWill4321

+0

一個空數組。 – AppTest

回答

3

一種選擇是使用map函數從字符串ID列表中獲得的ObjectId的名單:

arr.map(function (id) { 
    return ObjectId(id); 
}) 

插入到您的查詢:

db.companies.find({_id: { $in: arr.map(function (id) {return ObjectId(id);})}}) 
相關問題