如何应用所有Collection的功能

时间:2016-05-30 06:14:38

标签: node.js meteor collections

我想通过使用函数在server.js中更新我的集合。 当我更改一个字段时,我需要更改多个集合。 我的问题是我如何使用参数作为集合名称。有没有办法,或者我必须为每个集合编写一个函数?

update: function(personID,option) {
  return Personel.update(
    { id: personID },
    { $set: option },
    { multi: true }
  );
},

我想将此逻辑应用于单独的集合。

2 个答案:

答案 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 }
  );
},