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

用户已访问的组位置

  •  1
  • Mansa  · 技术社区  · 6 年前

    以下是我的示例数据:

    {"userId": "abc123", "visited": "Berlin"}
    {"userId": "abc123", "visited": "Copenhagen"}
    {"userId": "abc123", "visited": "New York"}
    {"userId": "abc123", "visited": "Berlin"}
    

    var allVisits = db.Collection('visits').find( { "userId" : "abc123" };
    
    var allCities = [];
    

    我想得到一个所有城市的阵列,但只有一次。我怎样才能做到呢?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Ashh    6 年前

    你可以用 $addToSet $group 舞台。

    db.Collection('visits').aggregate(
      { "$match": { "userId" : "abc123" }},
      { "$group": {
        "_id": null,
        "places": { "$addToSet": "$visited" }
      }}
    )