MongoDB中的更新子文档在shell中工作,但在Meteor应用程序中不工作
我有这样的收藏MongoDB中的更新子文档在shell中工作,但在Meteor应用程序中不工作,mongodb,meteor,nosql,Mongodb,Meteor,Nosql,我有这样的收藏 { _id: "qex6zPLgigq4KGpFP", active: true, name: "event name", questions: [{ _id: "cff4cc7f1ae67282f1ea142b", createdBy: "izRFAkhxgemihkRMF", likes: 2 }, { _id: "2cf23241ca456703f50a9ce4",
{
_id: "qex6zPLgigq4KGpFP",
active: true,
name: "event name",
questions: [{
_id: "cff4cc7f1ae67282f1ea142b",
createdBy: "izRFAkhxgemihkRMF",
likes: 2
}, {
_id: "2cf23241ca456703f50a9ce4",
createdBy: "izRFAkhxgemihkRMF",
likes: 0
}]
}
我在Meteor应用程序中初始化我的收藏,如下所示:
Events = new Mongo.Collection("events");
现在我想从'questions'数组中删除一个子文档,它在shell中使用
db.events.update({_id:"qex6zPLgigq4KGpFP"}, {$pull: {'questions': {_id:"cff4cc7f1ae67282f1ea142b"}}})
但不是在流星中呼唤
Events.update({_id:"qex6zPLgigq4KGpFP"}, {$pull: {'questions': {_id:"cff4cc7f1ae67282f1ea142b"}}})
返回值始终为“1”,但文档仍然存在。
这令人困惑。有什么想法吗?Meteor的Mongo并没有完全复制实际Mongo的所有功能。也许这会有帮助看起来您必须提取整个对象。@greyno似乎表明需要与文档完全匹配,但是我尝试用meteor 1.1.0.2复制您的示例,它从列表中提取了正确的问题。你用的是什么版本的流星?您如何测试
事件
文档未受影响?@greyno这是在客户端还是在服务器上?在服务器上,它直接发送到mongo。在客户端上,它使用meteorish mongo:minimongo替代。@David我也使用meteor 1.1.0.2。。我在测试时注意到问题仍然列在我的页面上。通过输入shell命令,它将消失。@Akshat它在服务器上,但在客户端也不起作用。