如何使用动态变量作为 Meteor/MongoDB 集合名称?

How do I use a dynamic variable as a Meteor/MongoDB collection name?

所以我尝试了这个但它没有用(在 isServer 上):

var tableName= "";
(...)
if (silly_cond === 1){
    tableName = "Table1";
}else{
    tableName = "Table2";
}
TableCol = new Mongo.Collection(tableName);

出于某种原因,我无法让它工作。好像只接受

TableCol = new Mongo.Collection("Table1");

想法是从 table ID 中获取 tablename,并将相同的 JS 应用于不同的 tables(在不同的模板上)。我做错了什么?

需要在函数外声明tableName,否则看不到。

var tableName = "";
if (silly_cond === 1){
    tableName = "Table1";
}else{
    tableName = "Table2";
}
TableCol = new Mongo.Collection(tableName);

我最终使用了 dburles:mongo-collection-instances package。它让我可以通过集合名称访问任何集合。所以在我的例子中:

TableCol = new Mongo.Collection("Table1");

使用我刚才写的上面的包例如:

var dbvar = "Table1";
Meteor.Collection.get(dbvar).find()

这样我就可以使用变量来获取集合。