仅与匹配的子文档不同

时间:2018-10-26 12:54:15

标签: mongodb aggregation-framework

让我们说我有一些看起来像这样的文件:

{
    "stuff": [
        {"thing": "A", "data": "helloworld"},
        {"thing": "A", "data": "something"},
        {"thing": "B", "data": "foobar"}
    ]
},
{
    "stuff": [
        {"thing": "A", "data": "something else"},
        {"thing": "B", "data": "foobar"}
    ]
}

如何获取不同的data列表,其中thing = A

我知道如何使用以下方法find这些子文档:

db.col.find({"stuff.thing": "A"}, {"stuff.$":1})

但是我找不到仅在匹配的子文档上进行distinct查询的任何信息。

1 个答案:

答案 0 :(得分:1)

您可以使用以下汇总。

db.col.aggregate([
   {"$match":{"stuff.thing":"A"}},
   {"$unwind":"$stuff"},
   {"$match":{"stuff.thing":"A"}},
   {"$group":{"_id":"$stuff.data"}
])