查找mongodb中密钥何时未知

时间:2018-07-05 08:48:37

标签: mongodb mongodb-query

我有这样的文档结构

{  
   "storeId":"WES-1234",
   "items":{  
      "PA-001":{  
         "name":"Cheetos Flamin' Hot",
         "qty":5,
         "inbound":7
      },
      "QX-7785":{  
         "name":"Kraft Handi Snack",
         "qty":7,
         "inbound":0
      }
   }
}

现在,我要搜索的是items包含“ Nabisco”的name。我该怎么做呢?众所周知,items是地图,而不是列表。 Mongo是2.6版

所以,在馆藏中,文档结构是这样的,我想知道哪些商店至少有3个Nabiscos或4个Cheetos,等等

PA-001和QX-7785是商品代码,它们是动态生成的,因此它们的值不固定或无法提前知道

是否可以查询此结构? javascript很好,只要能实现我需要的查询即可。

谢谢

2 个答案:

答案 0 :(得分:1)

在mongo控制台中,我的mongo数据库版本为v4.0.0:

db.test.find({"items.PA-001.name": /Nabisco/})

如果它不起作用,请告诉我。

答案 1 :(得分:1)

@sprintone,将您的文档结构更改为以下内容:

{  
  "storeId":"WES-1234",
  "items":[{  
     "reference": "PA-001",  
     "name": "Cheetos Flamin' Hot",
     "qty":5,
     "inbound":7
  }, ...]
}

这样,您将能够执行Array的特定查询($ elemMatch ...),而且还可以将引用用作“ foreignKey”来执行查找。这样会更加灵活!