1
嵌入對象值的增量我需要增加嵌入對象的值的計數的屬性,或者如果它不存在,創建對象的屬性,或創建如果整個記錄沒有之一,採用卡斯巴MongoDB的Scala中。也希望聽到如何做到這一點的直接蒙戈,如果有可能的。的Upsert在MongoDB中/卡斯巴/斯卡拉/
例如,如果有集合中沒有對象,通過增加與給定_id
的記錄,對象在vals
默認值1
財產a
開始。此查詢不工作,但看起來像我期望它:
import com.mongodb.casbah.Imports._
coll.update(MongoDBObject("_id" -> "obj1"), $inc("vals" -> Map("a" -> 1)), true, false)
這shold導致以下記錄:
{ "_id" : "obj1", "vals" : { "a" : 1} }
現在UPSERT一個新的對象爲vals
:
coll.update(MongoDBObject("_id" -> "obj1"), $inc("vals" -> Map("b" -> 1)), true, false)
產量:
{ "_id" : "obj1", "vals" : { "a" : 1, "b" : 1 } }
最後,更新插入/增加值的vals
的b
屬性,使用完全相同的查詢作爲在上一步:
coll.update(MongoDBObject("_id" -> "obj1"), $inc("vals" -> Map("b" -> 1)), true, false)
產量:
{ "_id" : "obj1", "vals" : { "a" : 1, "b" : 2 } }