Java で
記述方法が
記述方を
Java MongoDB Driver v2 か v3 かで 記述は 異なる。
v2
How to upsert with mongodb-java-driver - Stack Overflow
v2 のDBCollection#update(DBObject q, DBObject o, boolean upsert, boolean multi)
を
upsertをboolean upsert
に
v3
How to upsert document in MongoDB Java driver 3 - Stack Overflow
DBCollection#update(DBObject q, DBObject o, boolean upsert, boolean multi)
もMongoClient#getDB(String databaseName)
が
MongoClient#getDatabase(String databaseName)
を
MongoCollection を
MongoCollection#updateOne(Bson filter, Bson update, UpdateOptions updateOptions)
を
UpdateOptions#upsert(boolean upsert)
に
updateOne で [java.lang.IllegalArgumentException: Invalid BSON field name …] が 発生する。
updateOneの
Update Operators — MongoDB Manual 3.2 を
通常の
[java.lang.IllegalArgumentException: Invalid BSON field name …] が
通常の
MongoCollection#replaceOne(Bson filter, Bson update, UpdateOptions updateOptions)
を
通常の
/** * replaceOne * データを1件 updateする ヒットしなければ、対象ドキュメントをinsertする * * @param filer * @param map * @retrun UpdateResult */ protected UpdateResult replaceOne(@NonNull Bson filer, @NonNull Map<String, Object> map) { MongoCollection<org.bson.Document> coll = getCollection(); UpdateOptions options = new UpdateOptions().upsert(true).bypassDocumentValidation(true); ConsoleLog.dump(map.toString()); return coll.replaceOne(filer, new Document(map), options); }
以上です。
コメント