我正在实施基于MongoDB的博客。
让我们先来看看Mongo家伙如何推荐我们存储博客文章及其评论(http://www.mongodb.org/display/DOCS/Schema+Design):
我发现在此架构中编辑或批准评论非常困难。
由于评论是Post文档的一部分,我无法单独编辑它,因为它没有标识符可以在评论集合中找到它。
这就是我一次编辑所有评论的原因。另一个问题是,当我正在编辑所有评论时,有人可以发布新评论,并且在保存评论集后它将被覆盖。
可能我做错了什么?或者Mongo家伙描述的用例期望不会编辑评论。
此致 阿列克谢扎哈罗夫。
答案 0 :(得分:3)
您应该可以使用Atomic Operators来解决“保存所有评论”问题。例如,这样的事情应该有效:
db.posts.update({ _id: [ID] }, { $set: { "comments.5.body" : "New Comment Body" } })
编辑:只是为了扩展我的上述答案。原子操作符的工作方式是仅更新您告诉它们的特定字段,而不是整个文档。这不仅使您的更新更简洁,而且速度也更快。特别是如果在您的示例中,您有一篇包含许多评论的大型博文。