Optimization
MongoDB中隱私設置的模式設計
我有一組文件,它們周圍可以有各種隱私設置:
- 它們可以完成公開(任何註冊使用者)可以查看它們
- 只有關注您的人才能查看它們(此“關注者”數組儲存在每個使用者的文件中)
- 它們也可以對發布文件的人保密。
- 他們可以具有自定義隱私,允許您命名可以查看文件的個人使用者。此外,您可以允許使用者組也查看文件(例如,可能有一個名為“Sample Group”的組,其中有 20 個使用者。您可以允許該組查看磁貼。)
我不知道如何在 MongoDB 中有效地實現這個模式,並且希望深入了解實現這個模式的最佳實踐。
重要的是要記住,由於在 MongoDB 中有多種方法可以為給定的數據集設計模式,因此考慮您將從應用程序中進行的讀取和寫入類型至關重要。
假設您將查詢給定使用者可以看到的文件子集,您可能希望以一種能夠在單個查詢中查詢所有“可見”文件的方式來建構文件集合.
文件結構如:
{ _id: ..., public: true, groups: ['group1', 'group2',...], users: ['user1','user2',...], }
如果您有使用者 X 所屬的組列表,您現在可以通過以下查詢查詢使用者 X 可見的所有文件:
db.documents.find( { $or : [ { public : true }, { users : X }, { groups : { $in : [list-of-X's-groups] } } ] } )