在MongoDB中查找具有字符串ID数组的文档

App*_*est 2 javascript arrays mongodb objectid

我有一个ID的字符串数组,我想与find函数一起使用。

db.companies.find( { _id : { $in : arr} });
Run Code Online (Sandbox Code Playgroud)

arr 看起来像这样

[ '563a2c60b511b7ff2c61e938', '563a2c60b511b7ff2c61e8b7' ];
Run Code Online (Sandbox Code Playgroud)

我从不接受数组的文档中看到ObjectID()。如何搜索具有此数组的文档列表?我是否必须重新创建数组,以便所有元素都是ObjectID?

dre*_*cat 5

一种选择是使用该map函数ObjectId从字符串ID列表中获取的列表:

arr.map(function (id) {
  return ObjectId(id);
})
Run Code Online (Sandbox Code Playgroud)

插入您的查询:

db.companies.find({_id: { $in: arr.map(function (id) {return ObjectId(id);})}})
Run Code Online (Sandbox Code Playgroud)