我试图了解嵌入在 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 中有效地完成,还是我应该查看图形数据库。