1

我在使用 angular-meteor 更新文档中包含的数组时遇到问题。Minimongo 抛出错误documentMatches needs a document

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

{
  _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 对这个数组感到困惑。我可以放入任何其他属性,并且没有错误。但是当我从这个数组中删除一个项目时,它就出现了问题。

顺便说一句,当我不将对象保存到数据库时,我可以看到它已正确更改,从数组中拼接了一个元素。

4

0 回答 0