数据如下:
{ “_id” : 1, “item” : “abc1”, qty: 300 }
{ “_id” : 2, “item” : “abc2”, qty: 200 }
{ “_id” : 3, “item” : “xyz1”, qty: 250 }
函数如下:
abd(v){
return v;
}
现在需要用聚合管道计算qty等于200的集合:例如:
{$project:{value:{
$cond: {
if: { $eq: [ db.eval(“abc(‘$qty’)”) , 200 ] }, then: 1, else: 0 }
}
}
}
怎么都无法计算出status的值等于0的条目,现在感觉是abc(’$qty’)传参数的问题,但是又不知道怎么搞,如果abc($qty)会报错,麻烦各位帮忙解决下,btw:我只是举了个例子,并不是用麻烦的函数计算简单地事情,我的abc函数在具体使用过程中会加很多判断,主要就是怎么拿到每个集合的字段值传入abc函数的问题?