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

如何编写一个查询,返回表2中具有与MongoDB Atlas中表1的ID匹配的特定字段的对象数?

  •  1
  • web1connoisseur  · 技术社区  · 3 年前

    我有两张桌子,用户和游乐设施。

    我想返回在rides表中有0个rides的所有用户的名字和姓氏。

    A. 使用者 对象设置为具有以下字段:

    _id:
    StravaConnect:Object {
      AthleteID: 123
    }
    FirstName:
    LastName:
    

    A. 对象设置为具有以下字段:

    _id:
    AthleteID: 123
    Length: 
    

    我如何汇总这些数据,以显示所有用户的列表,其中有0次骑乘。AthleteID==用户。StravConnect。运动员?

    注意:我使用的是MongoDB指南针

    1 回复  |  直到 3 年前
        1
  •  1
  •   Dharmaraj    3 年前

    试试这个管道:

    1. $lookup 获得用户的支持
    2. $match 文件在哪里 $size 属于 rides 数组(如果大于0)
    3. $project 必填字段
    [
      {
        "$lookup": {
          "from": "rides",
          "localField": "StravaConnect.AthleteID",
          "foreignField": "AthleteID",
          "as": "rides"
        }
      },
      {
        "$match": {
          $expr: {
            "$gt": [
              {
                "$size": "$rides"
              },
              0
            ]
          }
        }
      },
      {
        "$project": {
          "FirstName": 1,
          "LastName": 1
        }
      }
    ]
    

    Mongo Playground