我尝试更新包含数组

时间:2015-09-18 20:30:25

标签: mongodb meteor minimongo angular-meteor

我无法使用angular-meteor更新文档中包含的数组。 Minimongo抛出错误documentMatches needs a document

在更新时抛出此错误的文档如下所示。它包含的一件事是_id s的数组。此数组包含某些特定文档的显示顺序。它看起来像这样:

{
  _id:"...",
  profileQuestions:{
    profileQuestionsOrder:["jqKMp7rzsZApauwYE","jakehILKehpkdhj"]
  }
}

我已使用$scope.meteorObject将此附加到名为$scope.settings的变量。当我从此数组中删除项目然后使用.save()保存时,我收到错误。有趣的是,当我将一个项目添加到数组,然后保存,没有问题!我还可以将其他键添加到设置对象中,没有任何问题。它只是导致问题的数组。

我使用chrome的调试器来查看抛出错误时发生了什么,这是抛出错误的代码:

  documentMatches: function (doc) {
    if (!doc || typeof doc !== "object") {
      throw Error("documentMatches needs a document");
    }
    return this._docMatcher(doc);
  },

令人抓狂的是doc这里实际上是profileQuestionsOrder数组中的第一项 - 它只是一个包含文档ID的字符串。似乎miniMongo对此阵列感到困惑。我可以放入任何其他属性,它没有错误。但是当我从这个数组中删除一个项目时,它有问题。

顺便说一句,当我不将对象保存到db时,我可以看到它被正确更改,将一个元素拼接出数组。

0 个答案:

没有答案