首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >文档数组的MongoDB查询

文档数组的MongoDB查询
EN

Stack Overflow用户
提问于 2020-02-24 11:06:27
回答 2查看 35关注 0票数 0

我在数据库中有以下数据

代码语言:javascript
运行
复制
  { 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 } ] }

我要找出仓库

  • 15质量paper
  • 35 qty of postcard
EN

回答 2

Stack Overflow用户

发布于 2020-02-24 12:26:41

尝试使用此查找查询。

代码语言:javascript
运行
复制
db.warehouse.find(
   {
      $or: [
         {
            item: "paper",
            instock: { $elemMatch: { qty: 15 } }
         },
         {
            item: "postcard",
            instock: { $elemMatch: { qty: 35 } }
         }
      ]
   }
) 
票数 1
EN

Stack Overflow用户

发布于 2020-02-24 11:47:58

试试这段代码可能会对你有帮助。

代码语言:javascript
运行
复制
db.getCollection('warehouses').aggregate([
  {
    $unwind: "$instock"
  },
  {
    $match: {
      $or: [
        {
          $and: [{ 'item': 'paper' }, { 'instock.qty': { $eq: 15 } }]
        },
        {
          $and: [{ 'item': 'postcard' }, { 'instock.qty': { $eq: 35 } }]
        }
      ]
    }
  }
])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60374596

复制
相关文章

相似问题

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