问题描述
- 字段值传入函数参数问题:
-
数据如下:
{ "_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函数的问题?
解决方案
<!DOCTYPE html>
<html>
<body>
<script>
var json = [{ "_id" : 1, "item" : "abc1", qty: 300 },
{ "_id" : 2, "item" : "abc2", qty: 200 },
{ "_id" : 3, "item" : "xyz1", qty: 250 }];
for(var i=0;i<json.length;i++){
document.write(json[i]['qty']);
document.write('</br>');
}
</script>
</body>
</html>
时间: 2024-12-21 10:57:57