我想知道如何只检索任何breakout
个项目都有source
属性的文档。
我尝试了以下内容:db.getCollection('receipts').find({"sizeBreakout.packBreackout.breakout.source":{"$exists":true}})
但总是会返回一个空结果......为什么?!?这个查询的正确语法是什么?!?
的 EDIT1:
附件:https://drive.google.com/file/d/0B2zKseaQl2gnVlFWZFlaRzloMDg/view?usp=sharing
答案 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
存在的所有文档。