小编rag*_*lka的帖子

MongoDB - 处理嵌入式文档和关系

我正在为我正在构建的 Web 应用程序研究 MongoDB。来自 MySQL 背景,嵌入式文档的概念并不是那么容易完全理解。

假设我有一个名为的文档blogpost,它看起来像这样:

db.posts.save({
    _id: 1
    title: "first post!",
    body: "post content",
    author: {
        _id: 1,
        name: 'John'
        email: 'jonh@doe.com'
    },
    comments: [
        {
            _id: 20,
            author: 'mary',
            content: 'This blog post is cool!'
        }
    ]
});
Run Code Online (Sandbox Code Playgroud)

每个作家实际上将被存储在在authors收集,当我保存blogpost,我只会从复制数据author文件,并将其粘贴所以它嵌入在blogpost文件。这是一个好方法吗?

我担心的是,当约翰更新他的电子邮件地址时,它只会在authors集合中更新。他的一些较早的博文会显示一个过时的电子邮件地址。

MongoDB 是否有处理该问题的方法,还是我需要在我的应用程序代码中自己做?

如果我在我的应用程序代码中这样做,那么首先将作者嵌入到博客文章中有什么意义?我可以只存储引用 ,author _id并在单独的查询中查找作者。

另一方面,如果我需要存储历史数据,例如带有客户信息的发票,那么将客户文档嵌入到发票文档中是有意义的,因为发票需要显示创建发票时存在的客户数据.

对于评论部分,我已经阅读了多集合 vs 嵌入式文档,当谈到评论时,多集合似乎是要走的路。http://mongly.com/Multiple-Collections-Versus-Embedded-Documents/

那么,总的来说 - 我是否完全错过了嵌入式文档的重点?

embedded mongodb

6
推荐指数
1
解决办法
1603
查看次数

标签 统计

embedded ×1

mongodb ×1