MongoDB 3.4 Upsert不插入

时间:2017-02-27 17:59:59

标签: java mongodb upsert mongo-shell

在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。

1 个答案:

答案 0 :(得分:0)

奇怪的是,重新启动我的MongoDB服务器之后,Java代码已经开始按预期工作了。