假设有类似的集合:
db.test.insert([{"f1":100,"f2":150},{"f1":120,"f2":541},{"f1":125,"f2":140}])
如何创建类似的查询mongodb
Select count(*) from test where (f2-f1)<100
我做了一些尝试,但没有工作:
db.test.aggregate([{ $match: {} }, { $project: { _id : 0,name : 1, r1: {$subtract:["$f2", "$f1"]} }}])
答案 0 :(得分:4)
首先使用$project
创建包含计算值的结果集。然后使用$match
过滤掉与您的条件不匹配的值。
db.test.aggregate(
{ $project: { _id : 0,
name : 1,
difference: {$subtract:["$f2", "$f1"]}
}
},
{ $match: { difference: { $lt: 100 }
}
})