我對MongoDB相當陌生,所以請原諒我,如果這個問題有一個簡單的答案。MongoDB中的狀態依賴聚合
我試圖設計一個聚合事件生成文檔「狀態」的查詢。特別是,我對每個州「花費」的時間感興趣。
比方說,我有一個MongoDB的集合與下面的模式:
{
timestamp: {type: Number, required: true},
state: {type: Number, required: true}
}
我要生成的狀態列表和時間在每個狀態所花費的金額。舉例來說,如果我有以下文件(通過時間戳訂購),
{timestamp: 100, state: 0},
{timestamp: 102, state: 1},
{timestamp: 110, state: 1},
{timestamp: 120, state: 0},
{timestamp: 123, state: 1}
那麼我想產生[{state: 0, time: 5}, {state: 1, time: 18}]
其中第一入口的時間是由於:(102-100)+(123-120)和第二項的時間是由於(120-102)。
我知道Mongo的聚合框架使用流,所以看起來像這種狀態依賴聚合將是非常簡單的。但是,我還沒有遇到過這種機制或術語。
有什麼建議嗎?有沒有內置的機制來做這樣的事情?
實際上,這不是直接使用聚合,因爲流水線一次處理一個文檔。有幾個數學運算符,但不清楚它們在您的場景中將如何使用,因爲它比總和更復雜。 – WiredPrairie