【发布时间】:2012-02-14 20:56:51
【问题描述】:
我试图了解在 Mongodb 中的嵌入,但找不到足够好的文档。不建议链接,因为写入在文档之间不是原子的,并且还有两个查找。有人知道如何解决这个问题吗?或者你会建议我去像 neo4j 这样的图形数据库。
我正在尝试构建一个需要多对多关系的应用程序。为了解释,我将以图书馆为例。它可以根据他的朋友正在阅读的书籍和邻居(志同道合)用户正在阅读的书籍向用户推荐书籍。
有用户和书籍。用户借书并有其他用户的朋友
- 给定一个用户,我需要他正在阅读的所有书籍以及相互阅读的数量 本书的朋友
- 给定一本书,我需要所有正在阅读它的人。可以给 用户A,这将返回人们阅读书籍的交集 和用户 A 的朋友。这是相互的友谊
用户 = [
{ name: 'xyz', 'id':'000000', friend_ids:['949583','958694']} { name: 'abc', 'id':'000001', friend_ids:['949582','111111']} ]书籍 = [
{'book':'da vinci code', 'author': 'dan brown', 'readers'=['949583', '000000']} {'book':'iCon', 'author': 'Young', 'readers'=['000000', '000001']} ]
如上所示,如果我使用 mongo DB,通常我需要两个文档,因为我可能会采用两种方式查找。将文档复制(嵌入)到另一个文档中可能会导致大量重复(这些架构可能存储的信息比显示的多得多)。
我的数据建模是否正确?这可以在 mongodb 中有效地完成还是我应该查看图形数据库。
【问题讨论】:
标签: mongodb many-to-many graph-databases