我有一个看起来像这样的文件:
{
_id: x,
1: {a:a, b:b, c:b},
}
我想计算字典{a:a, b:b, c:b}
中的键数(这里是3)。
我当前的解决方案不起作用,因为$size
仅适用于数组(看起来非常糟糕,更糟糕的是它返回游标)。
db.test.aggregate([
{$match: {$and: [{_id: x}, {1.a: {$exists: True}}]}},
{$project: {my_count: {$size: $1.a}}}
])
我想我可以将模式更改为数组,但这对我的大多数操作来说都不是很好。
有办法做到这一点吗?
PS:我不想返回文档(每秒数百万次调用),我试图从一个查询中获取计数,如果可能的话,以优化的方式获取。
PPS:我正在使用(这不能改变)mongodb 3.2.x