我是Mongo新手,並試圖使此架構有效。
它旨在記錄事件,因爲它們發生在高流量網站上 - 只是增加某個動作發生的次數。
{
_id: "20110924",
Vals:[
{ Key: "SomeStat1": Value: 1},
{ Key: "SomeStat2": Value: 2},
{ Key: "SomeStat3": Value: 3}
]
}
,
{
_id: "20110925",
Vals:[
{ Key: "SomeStat1": Value: 3},
{ Key: "SomeStat8": Value: 13},
{ Key: "SomeStat134": Value: 63}
]
}, etc.
所以這裏的_id是日期,然後是不同統計數組的數組以及它們發生的次數。當天可能沒有統計數據,並且數據鍵可以是動態的。
我正在尋找最有效的方式來實現這些更新,避免競爭條件......所以理想情況下所有原子。
我試圖做$ inc卡住了。當我指定它應該插入時,它會嘗試將整個文檔作爲條件匹配,並且在重複鍵上失敗。同樣,對於$ addToSet - 如果我用{Key:「SomeStat1」}添加ToSet,它不會認爲它是重複的,因爲它與整個文檔匹配,因此將其與現有的SomeStat1值一起插入。
這裏最好的辦法是什麼?有沒有辦法控制$ addToSet如何匹配?或者我需要一個不同的模式?
在此先感謝。
我不相信這是有效的JSON? – Nik
問題我在嵌入主文檔時遇到了反序列化爲強類型類(c#驅動程序),我認爲這是不可能的。 – Nik
opp抱歉,修復它。我不認爲你總是需要用c#驅動程序進行反序列化,這肯定是一種解決方法。 –