我目前正在考虑如何构建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世界的初学者
答案 0 :(得分:1)
多次讨论“链接或嵌入”这个问题。您的resaerch的良好开端可以是question。
修改强>
如果(如你所说)people
是复杂的对象,那么你应该通过id或名称来引用它们。将(复杂)对象存储在同一文档中两次(或更多)是没有意义的。