私は Mongo DB を初めて使用し、さまざまな環境 ( Dev 、QA 、および Production ) で動作が異なるため問題を抱えています。
MongoDB のレコードを更新するために findAndModify を使用しています。
データを Mongo DB に更新/挿入するジョブが毎日実行され、 findAndModify を使用してレコードを更新しています。
しかし、私が観察したのは、 findAndModify によって返される最初のレコードが Dev 、 QA 、および Production 環境で異なることですが、3 つの環境は同じデータを持っていますか??
Mongo DB document に従って、 findAndModify が最初のドキュメントを変更すると述べています
現在、これは私のコードです:
BasicDBObject update = new BasicDBObject();
update.append("$set", new BasicDBObject(dataformed));
coll.findAndModify(query, update);
予測不可能な動作に依存するのではなく、findAndModify が最終更新レコードを返すようにする方法を教えてください。
編集部分
コードにソートを使用しようとしていますが、コンパイル エラーが発生します
coll.findAndModify(query, sort: { rating: 1 }, update);
System.currentTimeMilis を使用して作成された lastUpdated というフィールドがあります。
したがって、このlastUpdatedをこの方法で使用して、最終更新レコードを取得できますか
coll.findAndModify( query,
new BasicDBObject("sort", new BasicDBObject("lastUpdated ", -1)),
update);