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 } }