Mongo引用同一文档中的字段

时间:2014-02-12 12:51:33

标签: mongodb

我目前正在考虑如何构建node.js应用程序的数据,我将开发 我正在考虑使用Mongo作为数据库,但想不出一个完成我想要的好方法。我的所有研究都让我跨文档引用,但这不是我想要的,因为一切都在我的“事件”文档中。

我的文件包含一个人们参与的事件:

{
  name: "Some event name",
  people: ["A", "B", "C", "D", ... ],  // Could be more complex objects, with name, mail for instance
  actions : [
    {
        name: "Some action name"
        someAttr: 4.21
        leader: "A"  // One of people
        followers : ["A", "B", "D"]  // from people too
    },
    ...
  ]
}

正如您所看到的,人们在文档中重复了一遍。它们可以重复多次,因为每个事件都会收集很多动作。

我应该以这种方式保留我的架构,还是有更聪明的事情要做,例如使用全局人员列表的索引引用人们的行为?

{
  name: "Some event name",
  people: ["A", "B", "C", "D", ... ],
  actions : [
    {
        name: "Some action name"
        someAttr: 4.21
        leader: 0
        followers : [0, 1, 3]
    },
    ...
  ]
}

如果是这样,最明智的方法是什么?

非常感谢

注意:这是一个理论问题,我是Mongo和node.js世界的初学者

1 个答案:

答案 0 :(得分:1)

多次讨论“链接或嵌入”这个问题。您的resaerch的良好开端可以是question

修改

如果(如你所说)people是复杂的对象,那么你应该通过id或名称来引用它们。将(复杂)对象存储在同一文档中两次(或更多)是没有意义的。