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