Mongodb:如何传递'collection'参数才能使用?

时间:2012-07-17 03:21:06

标签: mongodb

我有我的JS文件。我在顶部声明了一个变量:

var aCollection = db.myCollection;

我有一个存储的JS程序,它接受两个参数。字符串“id”和要使用的“集合”。

如何传递两个参数,这也是一个集合作为参数?

db.eval("runSP('32', aCollection");

如果我这样做,那么我得到一个例外,说“aCollection”不存在。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您是否尝试过执行javascript concat?

db.eval("runSP('32', '"+aCollection+"')"(;

完整性检查集合变量与字符串的连接:

> use test
switched to db test
> show collections
system.indexes
system.js
> var aCollection = db.system.js;
> print ("foo" + aCollection + "bar");
footest.system.jsbar

您的函数将收到集合的字符串名称。如果那是你所有的功能所期待的,那么你就是好的。如果您需要在javascript函数中解析集合,可以执行以下操作:

function runSP(numberVal, aCollection) {
    var coll = db[aCollection];
    coll.find();
}

答案 1 :(得分:0)

db.eval可以将多个参数传递给作为第一个参数提供的函数:

db.eval(runSP, '32', aCollection);