代码之家  ›  专栏  ›  技术社区  ›  Juicy

仅与匹配的子文档区分

  •  0
  • Juicy  · 技术社区  · 6 年前

    假设我有一些文件看起来像:

    {
        "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 回复  |  直到 6 年前
        1
  •  1
  •   s7vr    6 年前

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