Meteor upsert返回Error

时间:2014-12-10 23:42:48

标签: javascript mongodb meteor

在Meteor应用程序中使用upsert时遇到错误。我有一个拥有权限的集合......

Parts = new Mongo.Collection('parts');

if (Meteor.isServer) {
  Parts.allow({
    insert : function () {
      return true;
    },
    update : function () {
      return true;
    },
    remove : function () {
      return true;
    }
  });
}

和一个upsert方法,用于检查是否已创建具有“partName”的文档。

Meteor.call( 'partsUpsert', partName, content );

Meteor.methods({
    partsUpsert: function (partName, content) {
        Parts.upsert(
            check(content, Number),
            check(partName, String),
            {name: partName},
            { 
                $set: {vertices: content}
            }
        );
    }
});

如果尚未创建,则应将新文档插入数据库。但我不断收到服务器错误Exception while invoking method 'partsUpsert' Error: Invalid modifier. Modifier must be an object.

我尝试修改代码但没有任何效果。

1 个答案:

答案 0 :(得分:2)

检查是方法的一部分,而不是upsert。试试这个:

Meteor.methods({
  partsUpsert: function (partName, content) {
    check(content, Number);
    check(partName, String);

    return Parts.upsert({name: partName}, {$set: {vertices: content}});
  }
});