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 - 查询匹配数组值的多个文档;的主要内容,如果未能解决你的问题,请参考以下文章
在 Mongoose/MongoDB 的文档中过滤数组、子文档、数组、文档
根据对象数组中不匹配的属性查找匹配的文档 - MongoDB