作者回复: MongoDB企业版中有支持SQL方式查询的工具。
作者回复: 没有sumif这个keyword,但是可以实现类似的事情,下面这个例子是只把>=10 的$a字段的值相加求和:
db.collection.aggregate([{
$group: {
_id: null,
total: {
$sum: {
$cond: [{ $gte: ["$a", 10] },
"$a",
0
]
}
}
}
}])
作者回复: 第一个match是过滤原始集合的数据。第二个是针对group之后的结果再次过滤掉员工数量大于等于10的,只保留小于10个员工的部门。 第二个match没法放到前面,因为emp_qty在原始集合里不存在,必须等group之后才可以。
emp_qty: {$sum: 1}的意思是对group里面的每一条数据,值加1。 如果加2,自然结果就是两倍
作者回复: first_name要加美元符号,可以理解那是个变量, 实际的值要通过替换 first_name在文档中的具体值。
find()操作里面的用到的first_name只是个key。