0

Java で Mongo と Esper を使用しています。esper サーバーを起動したら、ドキュメントの追加を開始し、リスナーの 1 つで、それらのドキュメントの一部を更新する必要があります (1 回につき 1 つ)。問題は、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

ではMongoDBupdateメソッドを使用して、既存のドキュメントを置き換えるか、既存のドキュメントの特定のフィールドを更新できます。

updateにないドキュメントを作成したい場合は、 saveメソッドDBを使用する必要があります。ドキュメントが存在しない場合にドキュメントを挿入する upsert 操作呼ばれる特別な更新を実行します。

更新と保存については、MongoDB マニュアルを確認してください。

于 2013-05-24T12:07:23.443 に答える