以下两个聚合独立运行良好。现在,我希望第一个的结果由第二个处理:
1- 仅计算和显示唯一价格:
db.collection.aggregate([
{ "$group": {
_id": "$address",
"count": { "$sum": 1 },
}
},
{ "$match": {
"count": { $gt: 0 }
}
},
{ "$group": {
"_id": null,
"totalCount": { "$sum": 1 },
"content": { "$push": "$$ROOT._id" }
}
},
{ "$project": { _id: 0 } }
])
2- 计算街道名称重复的次数。请注意,同一条街道上有许多房屋,因此在聚合 #1 运行后仍然有重复的街道。
[
{ $addFields: {
parsedAddress: { $arrayElemAt: [
{ $getField: {
field: "captures",
input: { $regexFind: { input: "$address", regex: /\d+\s(.+)/, }, },
},
}, 0, ], },
},
},
{ $group: {
_id: "$parsedAddress", count: { $sum: 1, }, },
},
]
将它们放在单括号 [] 中,但没有用。