尝试将eval
与args
参数一起使用时,我得到了一个奇怪的结果。以下工作正常:
> db.eval(function(coll) {
var res = db[coll].find({});
return(res.count());
}, ['KenColl'])
1438
但是当我传递第二个参数时,即使我不使用它,我总是得到空的结果:
> db.eval(function(coll, query) {
var res = db[coll].find({});
return(res.count());
}, ['KenColl', {}])
0
我误解了eval
和args
的某些内容吗?我正在运行mongod
和MongoDB
shell的版本2.4.3。
答案 0 :(得分:1)
对于db.eval,你不应该将参数作为数组传递,只需将它们传递给函数。
以下示例应该有效:
db.eval(function(coll, query) {
var res = db[coll].find(query);
return(res.count());
}, 'KenColl', {})
P.S。您的第一个示例仅适用于javascript db['KenColl'] === db[['KenColl']]