2017-02-09 71 views
1

我有一個mongoDB集合,我在那裏存儲時間&節省的成本。 當用戶輸入的數據首次文檔還挺看起來是這樣的:MongoDB/Mongoose - 通過執行添加更新文檔中的數字

{ "fullName" : "john smith", 
    "company" : "xyz", 
    "email" : "[email protected]", 
    "timeSaved" : 50 //this is in minutes 
    "moneySaved" : 10 //this is in dollars 
} 

現在,當用戶再次進入數據我發現,如果一個文件已經存在該用戶時,如果它確實我得到它。

這個時候用戶輸入:

  1. 時間節省55
  2. 錢節省10

我想添加新值到現有值。所以文件後顯示:

"timeSaved" : 105 // old 50 + new 55 
"moneySaved" : 20 // old 10 + new 10 

什麼是最好的方式來實現這一目標。在MongoDB/Mongoose中是否有內置函數可以幫助解決這個問題。

+1

[$ INC(https://docs.mongodb.com/manual/reference/operator/update/inc /)將有所幫助。 – Veeram

回答

2

您可以通過$inc運算符來完成此操作。該$inc操作員通過一個指定的值

增加一個字段例如,在你的情況:

UserModel.update(
    SomeFindCriteria, 
    { $inc: { timeSaved: newTimeSaved, moneySaved: newMoneySaved } } 
) 
+0

啊完美!很簡單!感謝您的幫助。 :D一旦我測試完了,我會接受答案。 – Skywalker

相關問題