0

我正在使用 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);

有谁知道会发生什么?如果您需要任何其他信息,请告诉我。

非常感谢。

4

1 回答 1

1

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

如果你想记录你的update文件中不存在的文件DB,你必须使用save方法。它执行特殊的更新,称为upsert操作,如果文档不存在,它将插入文档。

检查MongoDB 手册中的 Update 和 Save

于 2013-05-24T12:07:23.443 回答