Java Mongo没有更新我启动服务器时数据库中没有的文档

Java Mongo没有更新我启动服务器时数据库中没有的文档,java,mongodb,esper,Java,Mongodb,Esper,我在Java中与Mongo和Esper合作。一旦我启动了esper服务器,我就开始添加文档,在我的一个侦听器中,我必须更新其中的一些文档(每次一个)。问题是,Mongo只会更新那些在我启动服务器之前就在数据库中的文档,而不会更新刚刚插入的文档 我正在运行以下代码: BasicDBObject searchQuery = new BasicDBObject(); searchQuery.append("symbol", newEvents[0].get("symbol")); searchQuer

我在Java中与Mongo和Esper合作。一旦我启动了esper服务器,我就开始添加文档,在我的一个侦听器中,我必须更新其中的一些文档(每次一个)。问题是,Mongo只会更新那些在我启动服务器之前就在数据库中的文档,而不会更新刚刚插入的文档

我正在运行以下代码:

BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("symbol", newEvents[0].get("symbol"));
searchQuery.append("fecha", newEvents[0].get("fecha"));

BasicDBObject newDocument = new BasicDBObject();
newDocument.append("$set", new BasicDBObject().append("SMA10", ((Double) newEvents[0].get("valor")).toString()));

col.update(searchQuery, newDocument);
有人知道会发生什么吗?如果您需要任何其他信息,请告诉我


非常感谢。

MongoDB
中,update方法可以替换现有文档或更新现有文档中的特定字段

如果要更新
数据库中不存在的
文档,必须使用保存方法。它执行特殊的更新,称为upsert操作,如果文档不存在,它将插入文档


查看。

嗨,阿尔桑,谢谢你的回复。我想更新数据库中的文档。事实上,我已经检查过,当我调用更新时,文档就在那里。我想问题不在我为更新编写的代码中,因为它是有效的,但只有当文档位于前一次执行的数据库中时才有效。所以我的问题是我想更新我在当前执行中插入的一个文档,而此时它不起作用。