在Mongo shell中尝试以下操作(并在Java中尝试)以更新或插入文档。过滤器应该返回false但我希望由于upsert = true
而创建文档db.eventLogs.updateOne(
{monthid:"062017", elementid:123456},
{$push: {
events: {sensor1:"sensor1 value",
sensor2:"sensor2 value"
}
}
},
{Upsert:true} )
声明已被确认,但即使Upsert = true,也没有任何内容插入到集合中。
我显然是个白痴,所以有人能让我摆脱痛苦吗?
Java版本......
Bson filter = Document.parse(argFilterJson);
Bson operations = Document.parse(argOperationsJson);
UpdateOptions options = new UpdateOptions().upsert(true);
return this.getCollection(argDBName, argCollectionName).updateOne(filter, operations, options);
argFilterJson和argOperationsJson的值完全符合shell。
答案 0 :(得分:0)
奇怪的是,重新启动我的MongoDB服务器之后,Java代码已经开始按预期工作了。