举一个示例场景......假设我们有一个MongoDB公司集合。每个公司文档可以有多个地址(存储在地址数组中)。我想搜索我所在位置附近的公司,但只显示$ geoNear运算符匹配的地址,而不是所有其他Address数组成员。
我尝试过类似的事情:
db.Companies.aggregate(
{
'$geoNear': {
near: [ -77.3898602, 38.8735614],
distanceField: 'dist.Distance',
maxDistance: 0.02020712301086133,
spherical: true,
distanceMultiplier: 4948.75,
includeLocs: "dist.location"
}
})
这给了我用于计算距离的数组成员的坐标,但我真的只想要父文档减去没有匹配的地址数组成员。
任何想法或提示??
提前致谢!
答案 0 :(得分:0)
执行计数
以下示例选择要使用$ match管道运算符处理的文档,然后将结果通过管道传输到$ group管道运算符以计算文档计数:
db.articles.aggregate( [
{ $match : { score : { $gt : 70, $lte : 90 } } },
{ $group: { _id: null, count: { $sum: 1 } } }
] );
在汇总管道中,$ match选择分数大于70且小于或等于90的文档。然后将这些文档传送到$ group以执行计数。聚合返回以下内容:
{
"result" : [
{
"_id" : null,
"count" : 3
}
],
"ok" : 1
}