MongoDB - 如何建立这种关系?

MongoDB - How to make this relation?

我有以下 collections:

客户 地址

现在假设,我希望能够向一个客户端添加多个地址,而地址 collection 仅存储地址名称。因此,地址参考或街道号码等所有其他信息都应存储在客户端嵌入数据中。

我是这样想的:

客户collection的文档示例:

地址collection的文档示例:

一切看起来都很好(如果我错了,如果这种方法有什么不好的地方,如果我需要改变一些东西,请纠正我)。但是现在,我正在创建一个过滤器(Angular2 和猫鼬作为 ODM),对客户进行排序,有没有办法按地址名称对我的客户进行排序?考虑到我有一个默认地址 属性?如果不是,如果我更改这些 collection 模型中的某些内容怎么样?我也在考虑将地址名称添加到 object 内部地址数组(客户端 collection),所以我可以按这样的方式排序: sort(client.address.name)...

还有一点是:我将我的地址分隔在一个新的 collection 中,因为我会给用户导入地址数据库的可能性,所以我需要一个没有客户端的地址列表附加到它。

虽然您想要为 collections 建模的方式没有任何问题,但如果您遵循 MongoDB 的文档 https://docs.mongodb.com/manual/tutorial/model-referenced-one-to-many-relationships-between-documents/

建议其易于嵌入文档以维护一对多关系。

您认为一个客户端可以关联多少个地址? 通过我上面粘贴的 link 只是几行,它相当直接,那里有很好的例子。看看这是否可以帮助您解决问题。