update+push支持?

ddarikpa  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(479)

我想使用spark在mongodb现有文档的嵌入字段中插入一个新条目。
例子

Blog {  
    id:"001"  
    title:"This is a test blog",  
    content:"...."  
    comments:[{title:"comment1",content:".."},{title:"comment2",content:"..."}]      
}

我想做什么

db.blogs.update({id:"001"}, {$push:{comments:{title:"commentX",content:".."}}});

这个图书馆现在有可能吗?如果没有,你能给我指一下正确的方向吗。
提前谢谢

oalqel3c

oalqel3c1#

使用spark mongodb的casbah库,我能够完成我希望的操作。

import java.sql.Timestamp
import java.util.Date

import com.mongodb.casbah.MongoClient
import com.mongodb.casbah.commons.MongoDBObject
import com.mongodb.casbah.query.Imports._

object TestCasbah {

  def main(args: Array[String]) {
    val mongoClient = MongoClient("172.18.96.45", 27017)
    val db = mongoClient("agentCallRecord")
    val coll = db("CallDetails")
    val query = MongoDBObject("agentId" -> "agent_1")
    val callRatingMongoObject = MongoDBObject("audioId" -> 12351,"startTime" -> new Timestamp(new Date().getTime).toString, "endTime" -> new Timestamp(new Date().getTime).toString, "totalScore" -> 1, "sentiment" -> "NEGATIVE")
    val update = $push("callRating" -> callRatingMongoObject)
    coll.update(query, update)
  }
}

相关问题