我有一个id的字符串数组,我想用find函数。
db.companies.find( { _id : { $in : arr} });
arr
看起来像这样,
[ '563a2c60b511b7ff2c61e938', '563a2c60b511b7ff2c61e8b7' ];
我从documentation看到ObjectID()
不接受数组。如何使用此阵列搜索文档列表?我是否必须重新创建数组,以便所有元素都是ObjectID?
答案 0 :(得分:4)
一种方法是使用map
函数从字符串ID列表中获取ObjectId
的列表:
arr.map(function (id) {
return ObjectId(id);
})
插入您的查询:
db.companies.find({_id: { $in: arr.map(function (id) {return ObjectId(id);})}})