首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MongoDb :在同一嵌入式文档中匹配的查询

MongoDb :在同一嵌入式文档中匹配的查询
EN

Stack Overflow用户
提问于 2022-08-24 13:08:42
回答 1查看 23关注 0票数 1

帮助我匹配单嵌入式文档的这两种情况。

代码语言:javascript
运行
复制
db.inventory.insertOne([
...     { "item": "journal", "instock": [ { "warehouse": "A", "qty": 5 }, { "warehouse": "C", "qty": 15 } ] },
...     { "item": "notebook", "instock": [ { "warehouse": "C", "qty": 5 } ] },
...     { "item": "paper", "instock": [ { "warehouse": "A", "qty": 60 }, { "warehouse": "B", "qty": 15 } ] },
...     { "item": "planner", "instock": [ { "warehouse": "A", "qty": 40 }, { "warehouse": "B", "qty": 5 } ] },
...     { "item": "postcard", "instock": [ { "warehouse": "B","qty": 15 }, { "warehouse": "C", "qty": 35 } ] }
... ])

期望返回与所查询的完全匹配但返回两个的单个文档。

代码语言:javascript
运行
复制
db.inventory.find( { "instock.qty": 5, "instock.warehouse": "A" } )
{ "_id" : ObjectId("63061a1bb87c1278047a2717"), "item" : "journal", "instock" : [ { "warehouse" : "A", "qty" : 5 }, { "warehouse" : "C", "qty" : 15 } ] }
{ "_id" : ObjectId("63061a1bb87c1278047a271a"), "item" : "planner", "instock" : [ { "warehouse" : "A", "qty" : 40 }, { "warehouse" : "B", "qty" : 5 } ] }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-24 13:17:21

您需要执行以下查询:

代码语言:javascript
运行
复制
db.inventory.find({
  instock: { $elemMatch: { qty: 5, warehouse: 'A' } }
});

参考文献:https://www.mongodb.com/docs/v5.0/tutorial/query-array-of-documents/#a-single-nested-document-meets-multiple-query-conditions-on-nested-fields

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73473790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档