【问题标题】:MongoDB - Query Multiple Documents which match array values;MongoDB - 查询匹配数组值的多个文档;
【发布时间】:2020-11-17 17:02:13
【问题描述】:
我正在尝试根据文档 ID 数组查询多个文档。
这是一个示例数组:[{_id: '123151djadjw11', quantity: 1}, {_id: 'some4idda123131', quantity: 2}];
我希望能够将这样的数组发送到服务器并检索与数组中每个对象中的 ID 属性匹配的文档。
任何想法将不胜感激!
提前致谢!
【问题讨论】:
-
将数组中的所有 id 获取到一个数组值,例如 let ids = ['123151djadjw11', 'some4idda123131'] 并用于过滤器使用 $in,例如 {_id: {$in: ids}}。
-
标签:
javascript
ajax
mongodb
express
document
【解决方案1】:
let array1 = [{_id: '123151djadjw11', quantity: 1}, {_id: 'some4idda123131', quantity: 2}];
let array2 = array1.map(a => a._id);
//结果数组2 =['123151djadjw11', 'some4idda123131'];
db 包含的值为
{
“_id”:“123151djadjw11”,
“数量”:1.0
}
{
"_id" : "some4idda123131",
“数量”:2.0
}
{
"_id" : "3rdId",
“数量”:5.0
}
let array3 = db.objects.find({_id:{$in : array2}}).toArray();
//返回array3= [{_id: '123151djadjw11', 数量: 1}, {_id: 'some4idda123131', 数量: 2}]