4

我正在实现基于 MongoDB 的博客。

让我们先看看 Mongo 人如何推荐我们存储博客文章及其评论(http://www.mongodb.org/display/DOCS/Schema+Design):

  • 帖子应该是一个集合。评论应该是帖子中的嵌入对象以提高性能。

我发现在此架构中编辑或仅批准评论非常困难。

由于评论是发布文档的一部分,我无法单独编辑它,因为它没有标识符可以在评论集合中找到它。

这就是我一次编辑所有评论的原因。另一个问题是,当我一次编辑所有评论时,有人可以发布新评论,并且在保存评论集合后它将被覆盖。

可能是我做错了什么?或者 Mongo 家伙描述的用例期望评论不会被编辑。

问候,阿列克谢·扎哈罗夫。

4

1 回答 1

3

您应该能够使用原子运算符来解决“保存所有评论”问题。例如,这样的事情应该可以工作:

db.posts.update({ _id: [ID] }, { $set: { "comments.5.body" : "New Comment Body" } })

编辑:只是为了扩展我的上述答案。原子运算符的工作方式是仅更新您告诉他们的特定字段,而不是整个文档。这不仅使您的更新更加简洁,而且速度也大大加快。尤其是在您的示例中,如果您有一篇包含许多评论的大型博客文章。

于 2010-07-28T14:01:58.313 回答