MongoDB - 查询匹配数组值的多个文档;

Posted

技术标签:

【中文标题】MongoDB - 查询匹配数组值的多个文档;【英文标题】:MongoDB - Query Multiple Documents which match array values; 【发布时间】: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 看here 【参考方案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]

【讨论】:

以上是关于MongoDB - 查询匹配数组值的多个文档;的主要内容,如果未能解决你的问题,请参考以下文章

多个子字段的 MongoDB 查询匹配

在 Mongoose/MongoDB 的文档中过滤数组、子文档、数组、文档

在Java中查询具有完全匹配字段MongoDB的数组元素

根据对象数组中不匹配的属性查找匹配的文档 - MongoDB

为啥 mongodb 查询在数组中查找具有两个值的文档不起作用?

如何匹配 MongoDB 中的子文档数组?