在MongoDB

时间:2015-12-15 22:22:41

标签: javascript arrays mongodb objectid

我有一个id的字符串数组,我想用find函数。

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

arr看起来像这样,

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

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

1 个答案:

答案 0 :(得分:4)

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

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

插入您的查询:

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