在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.

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

最佳答案

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

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

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

08-25 07:36