如何使用java-driver将数据插入mongodb集合?
我尝试(空收集):
db.getCollection(collection).update(new BasicDBObject("_id", "12"), dbobject, true, false);
但文档是使用_id == ObjectID(...)创建的 . 不是“12”值 .
此代码(js)按预期添加_id =“12”的文档
db.metaclass.update(
{ _id:12},
{
$set: {b:1}
},
{ upsert: true }
)
蒙戈-java的驱动程序2.11.2
3 回答
如果
dbobject
只是一个文档而不包含更新运算符,则不能设置_id
,例如:$set
,$setOnInsert
.只是传递一个文件将取代 whole document 意味着它没有设置
_id
一个回落到ObjectId
因此,如果您使用更新运算符,您的示例将起作用:
如果您使用mongo-java driver 3,则
.updateOne()
方法与{upsert, true}
标志有效 .您可以使用
replaceOne
方法并指定ReplaceOptions
(自3.7起):对于旧版本,您可以直接将
UpdateOptions
传递给replaceOne方法:如_2739339中所述: