我想通过使用函数在server.js
中更新我的集合。
当我更改一个字段时,我需要更改多个集合。
我的问题是我如何使用参数作为集合名称。有没有办法,或者我必须为每个集合编写一个函数?
update: function(personID,option) {
return Personel.update(
{ id: personID },
{ $set: option },
{ multi: true }
);
},
我想将此逻辑应用于单独的集合。
答案 0 :(得分:1)
这个问题有一个棘手的解决方法。你需要在一个对象中实际绑定所有集合。
CollectionList = {};
CollectionList.Personel = new Mongo.Collection('personel');
CollectionList.secondCollection = new Mongo.Collection('second');
之后将您的集合名称作为字符串传递给方法。
update: function(collectionName,personID,option){
return CollectionList[collectionName].update(
//..rest of your code
);
答案 1 :(得分:0)
您可以尝试这种方法:
var Personel = new Mongo.Collection('personel');
var Items = new Mongo.Collection('items');
var SomeOtherCollection = new Mongo.Collection('someOtherCollection');
....
update: function(personID, option, collectionName) {
// Choose collection by given name
var Collection = {
Personel: Personel,
Items: Items,
SomeOtherCollection: SomeOtherCollection
}[collectionName];
return Collection.update(
{ id: personID },
{ $set: option },
{ multi: true }
);
},