Mongo调用中使用的Meteor.method参数

时间:2014-06-30 02:31:32

标签: meteor

我想将此调用作为方法编写:Posts.update(this._id, { $set: { status: 'accepted' }})

Meteor.methods({
    ...
    updatePost: function(id, key, value) {
        Posts.update(id, { $set: { key: value }});
}
})

Meteor.call('updatePost', this._id, 'status', 'accepted')不起作用。我猜是因为'status'?我怎么能让这个工作?感谢。

2 个答案:

答案 0 :(得分:2)

我怀疑它不起作用,因为你不能在JavaScript对象文字中使用变量名作为键。您需要使用括号表示法。试一试:

Meteor.methods({
  updatePost: function(id, key, value) {
    check(id, String);
    check(key, String);
    check(value, String);

    var obj = {};
    obj[key] = value;
    return Posts.update(id, {$set: obj});
  }
});

答案 1 :(得分:1)

变量不能在javascript中定义为键。这样的事情可以做到这一点:

var update = {};
update[key] = value;
Posts.update(id, { $set: update });