我們需要能夠快速地在一組用戶的朋友和朋友的朋友中執行查詢。這在關係數據庫中會相對簡單,但我在MongoDB中完成它的最佳方式有點困難。我們存儲的用戶的朋友的用戶ID的用戶文檔中的數組,所以顯而易見的解決方案是要做到這一點:在MongoDB中爲朋友關係建模的朋友
- 把所有來自用戶的文檔
- 拉離用戶文檔的所有朋友陣列朋友的用戶ID (在所有朋友ID中使用$ in查詢),將應用程序端組合到一個集合中,然後將其與第一級朋友用戶ID結合以獲得所有朋友和朋友的朋友
- 使用該設置爲在所有朋友和朋友的朋友中執行最終查詢(使用$ in)
雖然簡單明瞭,但與我們在關係數據庫中加入可以做的事情相比,這似乎是來回式的大量數據。在MongoDB中有沒有更有效的方法來做到這一點,或者這是一個最適合RDBMS的問題嗎?
這假定朋友關係總是相互的......如果alex是jon的朋友,那麼jon也必須是alex的朋友。 – Jay
如何獲得共同的朋友? –
看看https://gist.github.com/levicook/4132037對於共同朋友 – rodi