Upgrade zuvor mongo-java-driver 3.0.4
Verwendung Wir waren, wo in einem bestimmten Codeblock dieser Implementierung hat -FindOne Implementierung geändert, während Mongo-java-Treiber 3.3.0
DBCollection docCollection = mongoClient.getDB(dbName).getCollection(collectionName);
Map<String, Object> docMap = doc.toMap(); // where doc is the CustomDocument
DBObject currentObj = docCollection.findOne(new QueryBuilder().put("id").is(doc.getId()).get());
if(currentObj == null) {
docCollection.insert(new BasicDBObject(docMap));
} else {
docCollection.update(currentObj, new BasicDBObject(docMap));
}
Was ich versuche jetzt zu erreichen, ist die Verwendung mongo-java-driver 3.3.0
und aktualisieren Sie den Code, um veraltete Klassen und Methoden zu entfernen. Was ich zu dem obigen Stück Code versucht, entsprechende -
MongoCollection<CustomDocument> docCollections = mongoClient.getDatabase(dbName).getCollection(collectionName, CustomDocument.class);
Bson filter = Filters.eq("id", doc.getId()); // where doc is the CustomDocument
FindIterable<Document> documentList = docCollections.find(filter);
if (documentList == null) {
docCollections.insertOne(doc);
} else {
docCollections.findOneAndUpdate(filter, new BasicDBObject(docMap));
}
Was finde ich nach wie vor fehlt die findOne
Implementierung aus der Sammlung in meinem Code und die Kontrolle basierte Aktionen für insert
und update
entsprechend durchgeführt werden.
Jede Lösung/Vorschlag dazu ist zu begrüßen.
die Frage bereits mit 'mongodb-java' – nullpointer
https://api.mongodb.com/java/3.3/ Liste obj markiert = collection.find (query) .skip (1000) .limit (100) .toArray(); –