古いMongoDBドライバのコードを最新のバージョンに移行しようとしています。Javaドライバを使用した検索とアップグレード
BasicDBObject query = new BasicDBObject("foo", "foo");
int value = 1;
BasicDBObject field = new BasicDBObject("seq", value);
BasicDBObject update = new BasicDBObject("$inc", field);
DBObject o = getDBCollection().findAndModify(query, null, null, false, update, true, true);
「foo」で文書が存在しなかった場合、それが作成されます:私たちはこのような何かを持っていた古いバージョンで 。 存在していた場合は、seqの値が増分されます。私はreplaceOneを使用して、このような何かをする必要がありますするMongoCollectionを使用して同じことをやって決めることができるものから、
:
Document query = new Document("foo", "foo");
int value = 1;
Document field = new Document("seq", value);
Document update = new Document("$inc", field);
UpdateOptions options = new UpdateOptions().upsert(true);
UpdateResult ret = getMongoCollection().replaceOne(query, update, options);
が、これはjava.lang.IllegalArgumentExceptionがになります:無効なBSONフィールド名$株式会社
を
これはうまくいきました - ありがとうございます。以前はfindOneAndUpdateを使ってみましたが、それらのオプションはありませんでした。それはクリンチャーだった。 –