我无法使用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时,我可以看到它被正确更改,将一个元素拼接出数组。