gpt4 book ai didi

java - 如何将 mongo shell 查询转换为 java basicDBObject?

转载 作者:行者123 更新时间:2023-11-29 05:38:05 24 4
gpt4 key购买 nike

我有以下在 mongo shell 中执行的 mongo 查询。

db.test.update({ 
uuid: "160597270101684",
sessionId: "160597270101684.1"
}, {
$setOnInsert: {
stamps: {
currentVisit: "1377500985",
lastVisit: "1377500985"
}
},
$push:{
visits: {
page: "google.com",
method: "GET"
}
}
}, { upsert:true })

因为我是 java 的新手,所以我对创建 basicDBObject 有点困惑。

我试过这样的例子

BasicDBObject doc = new BasicDBObject("uuid",1).append("session",2);
BasicDBObject upsertion = new BasicDBObject("upsert",true);
collection.update(doc,upsertion);

但它不起作用。

任何帮助都会很棒。

最佳答案

upsert DBObject 未指定选项但有第三个参数 DBCollection.update

public WriteResult update(DBObject q, DBObject o, boolean upsert, boolean multi)

您需要通过附加 $setOnInsert 来形成用于更新的 DBObject , $push , stampsvisits .

BasicDBObject update = new BasicDBObject();
BasicDBObject stamps = new BasicDBObject();
stamps.append("currentVisit", "1377500985").append("lastVisit", "1377500985");
BasicDBObject visits = new BasicDBObject();
update.append("$setOnInsert", stamps).append("$push", visits);

collection.update(doc, update, true);

关于java - 如何将 mongo shell 查询转换为 java basicDBObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18711960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com