MongoDB - 查询数组中的字段

时间:2016-03-09 15:25:37

标签: mongodb

以下是我的文档的快照: enter image description here

我想知道如何只检索任何breakout个项目都有source属性的文档。

我尝试了以下内容:db.getCollection('receipts').find({"sizeBreakout.packBreackout.breakout.source":{"$exists":true}})
但总是会返回一个空结果......为什么?!?这个查询的正确语法是什么?!? 的 EDIT1:
附件:https://drive.google.com/file/d/0B2zKseaQl2gnVlFWZFlaRzloMDg/view?usp=sharing

1 个答案:

答案 0 :(得分:1)

好吧,如果你有MongoDB 3.2,你可以使用这个简单的查询。

  

MongoDB版本3.2 +

db.docs.find({$filter: {input: "$sizeBreakout.packBreackout.breakout", 
  as: breakout,
  cond:{$exists:{"$$breakout.source": true}}}})
  

MongoDB版本< 3.2

db.docs.aggregate([
{$unwind: "$sizeBreakout.packBreakout.breakout"},
{$match: {"sizeBreakout.packBreakout.breakout.source":{$exists: true}}}
])

此查询将查找sizeBreakout.packBreackout.breakout.source存在的所有文档。