保存对象ID还是嵌入文档?

时间:2014-03-14 12:24:09

标签: mongodb mongoose

我有公司架构:

var CompanyEntityModel = new Schema({
    name: String,
    street: String,
    zipCode: String,
    city: String,        
    members: [Useraccount]
});

Useraccount架构:

var UseraccountEntityModel = new Schema({
    firstName: String,
    lastName: String,
    email: String,
    password: String,
    companies: [Company],
});

在我的场景中,我将useraccounts保存在useraccount集合中(在db中)并作为嵌入式文档保存在公司内部。所以公司可以有n个useraccounts。 我对公司做同样的事情(它们被保存在公司集合中,并作为嵌入式文档保存在useraccount中。一个useraccount可以有n个公司)。

我也可以将objectIds保存到成员(在公司架构中)和公司(在Useraccount架构中)。

什么更好?如果我坚持我的解决方案并且公司得到更新......我是否必须更新公司集合中的文档以及useraccounts中嵌入文档的所有公司?

1 个答案:

答案 0 :(得分:1)

可能会对您有所帮助:http://docs.mongodb.org/manual/reference/database-references/

我首选的方法是将对象ID保存到第二个集合中,并在应用程序端执行第二个查询以获取相关数据。