如何编写一个查询来 return table 2 中具有特定字段匹配 table 1 在 MongoDB Atlas 中的 ID 的对象的数量?
How to write a query that will return the count of objects in table 2 that have a certain field matching table 1's ID in MongoDB Atlas?
我有两个 table,用户和游乐设施。
我想 return 在游乐设施中有 0 次游乐设施的所有用户的名字和姓氏 table。
User 对象设置了以下字段:
_id:
StravaConnect:Object {
AthleteID: 123
}
FirstName:
LastName:
Ride 对象设置了以下字段:
_id:
AthleteID: 123
Length:
如何聚合此数据以显示所有用户的列表,其中 Ride.AthleteID == User.StravaConnect.AthleteID 有 0 次游乐设施?
注意:我正在使用 MongoDB 指南针
试试这个管道:
[
{
"$lookup": {
"from": "rides",
"localField": "StravaConnect.AthleteID",
"foreignField": "AthleteID",
"as": "rides"
}
},
{
"$match": {
$expr: {
"$gt": [
{
"$size": "$rides"
},
0
]
}
}
},
{
"$project": {
"FirstName": 1,
"LastName": 1
}
}
]
我有两个 table,用户和游乐设施。
我想 return 在游乐设施中有 0 次游乐设施的所有用户的名字和姓氏 table。
User 对象设置了以下字段:
_id:
StravaConnect:Object {
AthleteID: 123
}
FirstName:
LastName:
Ride 对象设置了以下字段:
_id:
AthleteID: 123
Length:
如何聚合此数据以显示所有用户的列表,其中 Ride.AthleteID == User.StravaConnect.AthleteID 有 0 次游乐设施?
注意:我正在使用 MongoDB 指南针
试试这个管道:
[
{
"$lookup": {
"from": "rides",
"localField": "StravaConnect.AthleteID",
"foreignField": "AthleteID",
"as": "rides"
}
},
{
"$match": {
$expr: {
"$gt": [
{
"$size": "$rides"
},
0
]
}
}
},
{
"$project": {
"FirstName": 1,
"LastName": 1
}
}
]