我已經在Stackoverflow中閱讀了很多文檔和示例,但我並不確定我的結論,所以這就是爲什麼我要求幫助。MongoDb多對多有很大的關係
想象一下,我們有一個集合電影和一個集合用戶和我們想知道,哪些用戶看過一部電影,哪些電影看過一個用戶。 MongoDB中設計這個
的一種方式是:
用戶:
{
"name":"User1",
"films":[filmId1, filmId2, filmId3, filmId4] //ObjectIds from Films
}
膜:
{
"name": "The incredible MongoDb Developer",
"watched_by": [userId1, userId2, userId3] //ObjectsIds from User
}
沒關係,這可以工作,如果用戶/膜的量是低的,但是例如,如果我們預計一部電影將有800k用戶,則陣列的大小將接近:800k * 12字節〜9.5MB,這接近BSON文件的最大16MB。
在這種情況下,除了創建關係的中間集合的典型關係世界方式之外,還有其他方法嗎?
另外我不知道如果閱讀和解析一個約10MB的JSON將會有比傳統關係方式更好的性能。
謝謝
你能否詳細說明你爲什麼要在電影文檔中保存用戶引用?我想寫的東西變成了一篇由我組成的4種可能性的小文章,對你來說可能是也可能不是這樣:) – malarzm