Mongodb的新手。
我想做的是创建一个公式,如果租金价格为价格的1%,则返回文档。
现在,我在数据库中同时存储了价格和租金值,但没有1%的值。
我尝试了下面的代码,但出现此错误 MongoError: Unrecognized pipeline stage name: '$expr'
这是我的代码
agg = [
{
"$set": {
"onePercent": { '$divide': ["$price", 100] }
}
},
{
"$expr": {
$gte: ["$rent", "$onePercent",]
}
},
]
let res = client.db('myDb').collection('myCollection').aggregate(agg)
如何进行查询以返回我要选择的文档?
您正在使用$ expr比较文档中的两个字段。$expr
运算符在哪里,但不在汇总阶段。因此,运算符需要在阶段内部使用,不能独自站在聚合管道中[{ stage1: {operators...} }, { stage2: {operators...} },...,{ stageN: {operators...} }]
。
MongoDB的聚合阶段$ match有助于根据条件过滤文档。
{ $match: { $expr: { $gte: ["$rent", "$onePercent"] } } } // your filter condition { $gte: ["$rent", "$onePercent"] }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句