2011-12-24 39 views
1

這是情況。比方說,我有一個標準化的產品,如sku。假設我每天檢查系統中每個SKU的價格並記錄歷史。讓我們也說,用戶可以追蹤他們感興趣的個別單品MongoDb - 沒有連接:重複或難看的查詢?

目前我儲存的數據是這樣的:

用戶 的SKU PriceHistory

的SKU具有所有感興趣的列表用戶以及具有最新價格的彙總對象等。因此,當價格更新時,我們重新彙總並更新sku。對於普通視圖,您只需拉動列表中具有該用戶的skus。

還有一個圖表顯示了sku的歷史,這很容易拉動。

問題是,當我要顯示一個圖形與所有的用戶skus。現在我似乎沒有一個好的選擇(這是SQL忽然看起來很棒的地方)。

我可以a)用每個PriceHistory存儲用戶列表,或者我可以運行一個查詢來爲用戶提取skus列表,然後在價格歷史記錄中運行'或'類型的查詢。

或者有更好的選擇?

回答

0

如果我理解正確,那麼您正在爲產品對象內嵌用戶的文檔。如果您經常需要直接訪問用戶,那麼您可能不會使用最佳設計。您仍然可以像在關係數據庫中那樣在文檔之間進行關聯。您不必使用嵌入式文檔。

我不知道你的系統如此好評判,但你可能想考慮分離這兩個文件,並在它們之間建立關係。

+0

對不起,應該已經更清楚了。我列出的3種文檔類型中的每一種都被單獨存儲(不嵌入)。 Sku有一個嵌入其中的User ID的列表。 – user1070663 2011-12-24 07:40:19

+0

哦,好的,對不起。 可你這樣的查詢上SKU: 查詢:{sku.users._id:<_ID>} 我有類似的查詢,但它是嵌入文檔。是你的,還是隻是一個值的數組? – 2011-12-24 16:00:15