Update zu aktualisieren Ich stehe vor einem Problem. Ich versuche zu aktualisieren, wenn bereits existiert sonst einfügen, wenn nicht vorhanden. Ich benutze Bulk API von Feder-Mongo-Treiber.Nicht in der Lage, Mongo in Bulk updateone mit Upsert
DBCollection dbCollection = mongoTemplate.getCollection("supcInfo");
BulkWriteOperation bulkWriteOperation = dbCollection.initializeUnorderedBulkOperation();
BulkUpdateRequestBuilder builder = bulkWriteOperation.find(new BasicDBObject("_id", supcInfo.getSupc())).upsert();
BasicDBObject dbObject = new BasicDBObject("$set",new BasicDBObject("_id", supcInfo.getSupc()));
dbObject = dbObject.append("$set",new BasicDBObject("pogId", supcInfo.getPogId()));
dbObject = dbObject.append("$set",new BasicDBObject("mrp", supcInfo.getMrp()));
dbObject = dbObject.append("$set",new BasicDBObject("price", supcInfo.getPrice()));
dbObject = dbObject.append("$set",new BasicDBObject("primarySellerCode", supcInfo.getPrimarySellerCode()));
dbObject = dbObject.append("$set",new BasicDBObject("camsEnabled", supcInfo.isCamsEnabled()));
dbObject = dbObject.append("$set",new BasicDBObject("availability", supcInfo.getAvailability()));
dbObject = dbObject.append("$set",new BasicDBObject("updateTs", supcInfo.getUpdateTs()));
builder.updateOne(dbObject);
bulkWriteOperation.execute();
Alle Felder werden jedoch nicht aktualisiert. Kann mir jemand Grund sagen und replaceOne funktioniert gut, aber es wird Index neu erstellen, wenn es welche gibt.
Können Sie ein Beispiel hinzufügen, wo es nicht funktioniert? Nicht sicher was "convertToDBObjectToUpdate (supcInfo)" tut. Brauchen wir sogar einen Bulk-Write-Vorgang, wenn alles, was Sie zu tun versuchen, nur aktualisiert wird? – Veeram
Es tut mir leid. Es ist DbObject. Ich versuche supfinfo zu aktualisieren, die 5 bis 7 Felder enthält, aber es aktualisiert zuerst und das letzte bedeutet nur _id und updateTs. { \t \t "SUPC": "supc15", \t \t "pogId": 1.354.619, \t \t "mrp": 3.322.323, \t \t "Preis": 99.232.323, \t \t "primarySellerCode": "" , \t \t "camsEnabled": true, \t \t "Verfügbarkeit": "auf Lager" \t} – cody123