0

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

我对evaland有什么误解args吗?我正在运行 2.4.3 版mongodMongoDBshell。

4

1 回答 1

1

对于db.eval您不应该将参数作为数组传递,只需将它们传递给函数。

以下示例应该有效:

db.eval(function(coll, query) {
  var res = db[coll].find(query);
  return(res.count());
}, 'KenColl', {})

ps您的第一个示例仅适用,因为在javascript中db['KenColl'] === db[['KenColl']]

于 2013-06-05T16:20:48.063 回答