private UpdateResult toUpdateResult(final com.mongodb.bulk.BulkWriteResult result) { if (result.wasAcknowledged()) { Long modifiedCount = result.isModifiedCountAvailable() ? (long) result.getModifiedCount() : null; BsonValue upsertedId = result.getUpserts().isEmpty() ? null : result.getUpserts().get(0).getId(); return UpdateResult.acknowledged(result.getMatchedCount(), modifiedCount, upsertedId); } else { return UpdateResult.unacknowledged(); } }
return false; if (modifiedCount != null && !modifiedCount.equals(that.getModifiedCount())) { return false;
/** * Add a result * * @param result the result * @param indexMap the index map */ public void addResult(final BulkWriteResult result, final IndexMap indexMap) { insertedCount += result.getInsertedCount(); matchedCount += result.getMatchedCount(); deletedCount += result.getDeletedCount(); if (result.isModifiedCountAvailable() && modifiedCount != null) { modifiedCount += result.getModifiedCount(); } else { modifiedCount = null; } mergeUpserts(result.getUpserts(), indexMap); }
static BulkWriteResult translateBulkWriteResult(final com.mongodb.bulk.BulkWriteResult bulkWriteResult, final Decoder<DBObject> decoder) { if (bulkWriteResult.wasAcknowledged()) { Integer modifiedCount = (bulkWriteResult.isModifiedCountAvailable()) ? bulkWriteResult.getModifiedCount() : null; return new AcknowledgedBulkWriteResult(bulkWriteResult.getInsertedCount(), bulkWriteResult.getMatchedCount(), bulkWriteResult.getDeletedCount(), modifiedCount, translateBulkWriteUpserts(bulkWriteResult.getUpserts(), decoder)); } else { return new UnacknowledgedBulkWriteResult(); } }
protected void onUpdateError(String updateName, QueryResult<BulkWriteResult> update, List<Bson> queries, List<String> queryIds, MongoDBCollection collection) { logger.error("(Updated " + updateName + " variants = " + queries.size() + " ) != " + "(ModifiedCount = " + update.first().getModifiedCount() + "). MatchedCount:" + update.first().getMatchedCount()); logger.info("QueryIDs: {}", queryIds); List<QueryResult<Document>> queryResults = collection.find(queries, null); logger.info("Results: {}", queryResults.size()); for (QueryResult<Document> r : queryResults) { logger.info("result: '{}'", r); if (!r.getResult().isEmpty()) { String id = r.first().get("_id", String.class); boolean remove = queryIds.remove(id); logger.info("remove({}): {}", id, remove); } } StringBuilder sb = new StringBuilder("Missing Variant for update : "); for (String id : queryIds) { logger.error("Missing Variant '" + id + '\''); sb.append('\'').append(id).append("', "); } throw new RuntimeException(sb.toString()); }
private void insertUpdateInBulkNoMatch(boolean ordered) { collection.insertOne(json("foo: 'bar'")); List<WriteModel<Document>> ops = new ArrayList<>(); ops.add(new UpdateOneModel<Document>(ne("foo", "bar"), set("field", "y"))); BulkWriteResult result = collection.bulkWrite(ops, new BulkWriteOptions().ordered(ordered)); assertThat(result.getInsertedCount()).isEqualTo(0); assertThat(result.getDeletedCount()).isEqualTo(0); assertThat(result.getModifiedCount()).isEqualTo(0); assertThat(result.getMatchedCount()).isEqualTo(0); }
private void insertUpdateInBulk(boolean ordered) { List<WriteModel<Document>> ops = new ArrayList<>(); ops.add(new InsertOneModel<>(json("_id: 1, field: 'x'"))); ops.add(new InsertOneModel<>(json("_id: 2, field: 'x'"))); ops.add(new InsertOneModel<>(json("_id: 3, field: 'x'"))); ops.add(new UpdateManyModel<Document>(json("field: 'x'"), set("field", "y"))); BulkWriteResult result = collection.bulkWrite(ops, new BulkWriteOptions().ordered(ordered)); assertThat(result.getInsertedCount()).isEqualTo(3); assertThat(result.getDeletedCount()).isEqualTo(0); assertThat(result.getModifiedCount()).isEqualTo(3); assertThat(result.getMatchedCount()).isEqualTo(3); long totalDocuments = collection.countDocuments(); assertThat(totalDocuments).isEqualTo(3); long documentsWithY = collection.countDocuments(json("field: 'y'")); assertThat(documentsWithY).isEqualTo(3); }
public <T extends Document> void bulkUpsertSessions(Collection<SessionEvent> events) { final BulkWriteResult res = sessions().bulkWrite(events.stream().map(event -> { if (event instanceof DeleteSessionEvent) { return new DeleteOneModel<T>(new Document("_id", event.getSessionId())); } else if (event instanceof UpdateSessionEvent) { return new UpdateOneModel<T>( new Document("_id", event.getSessionId()).append("object.sessionId", event.getSessionId()), new Document("$set", new Document("object.$.timestamp", event.getTimestamp())) ); } else { return new UpdateOneModel<T>( new Document("_id", event.getSessionId()), new Document("$set", new Document("object", serializer.toDBObject(event).get(OBJECT_FIELD))), new UpdateOptions().upsert(true) ); } }).collect(toList())); LOGGER.info("Sessions update in bulk results: {} created, {} updated, {} deleted, {} upserted", res.getInsertedCount(), res.getModifiedCount(), res.getDeletedCount(), res.getUpserts().size()); }
private UpdateResult toUpdateResult(final com.mongodb.bulk.BulkWriteResult result) { if (result.wasAcknowledged()) { Long modifiedCount = result.isModifiedCountAvailable() ? (long) result.getModifiedCount() : null; BsonValue upsertedId = result.getUpserts().isEmpty() ? null : result.getUpserts().get(0).getId(); return UpdateResult.acknowledged(result.getMatchedCount(), modifiedCount, upsertedId); } else { return UpdateResult.unacknowledged(); } }
private UpdateResult toUpdateResult(final com.mongodb.bulk.BulkWriteResult result) { if (result.wasAcknowledged()) { Long modifiedCount = result.isModifiedCountAvailable() ? (long) result.getModifiedCount() : null; BsonValue upsertedId = result.getUpserts().isEmpty() ? null : result.getUpserts().get(0).getId(); return UpdateResult.acknowledged(result.getMatchedCount(), modifiedCount, upsertedId); } else { return UpdateResult.unacknowledged(); } }
return false; if (modifiedCount != null && !modifiedCount.equals(that.getModifiedCount())) { return false;
throw e; logger.info("{} object updated", bulkWriteResult.first().getUpserts().size() + bulkWriteResult.first().getModifiedCount()); bulkWriteResult.getNumTotalResults(), bulkWriteResult.getWarningMsg(), bulkWriteResult.getErrorMsg(), Collections.singletonList((long) (bulkWriteResult.first().getUpserts().size() + bulkWriteResult.first().getModifiedCount())));
private Function<BulkWriteResult, Source<Boolean, NotUsed>> mapCombinedWritesResult( final List<WriteModel<Document>> policyWriteModels) { final BulkWriteOptions writeOrdered = new BulkWriteOptions(); writeOrdered.ordered(true); return bulkWriteResult -> { if (bulkWriteResult.getModifiedCount() > 0 || bulkWriteResult.getInsertedCount() > 0) { if (!policyWriteModels.isEmpty()) { return Source.fromPublisher(policiesCollection.bulkWrite(policyWriteModels, writeOrdered)) .map(policiesWriteResult -> Boolean.TRUE); } else { return Source.single(Boolean.TRUE); } } else { // return false if the previous bulk write did not modify anything return Source.single(Boolean.FALSE); } }; }
private Function<BulkWriteResult, Source<Boolean, NotUsed>> mapCombinedWritesResult( final List<WriteModel<Document>> policyWriteModels) { final BulkWriteOptions writeOrdered = new BulkWriteOptions(); writeOrdered.ordered(true); return bulkWriteResult -> { if (bulkWriteResult.getModifiedCount() > 0 || bulkWriteResult.getInsertedCount() > 0) { if (!policyWriteModels.isEmpty()) { return Source.fromPublisher(policiesCollection.bulkWrite(policyWriteModels, writeOrdered)) .map(policiesWriteResult -> Boolean.TRUE); } else { return Source.single(Boolean.TRUE); } } else { // return false if the previous bulk write did not modify anything return Source.single(Boolean.FALSE); } }; }
/** * Add a result * * @param result the result * @param indexMap the index map */ public void addResult(final BulkWriteResult result, final IndexMap indexMap) { insertedCount += result.getInsertedCount(); matchedCount += result.getMatchedCount(); deletedCount += result.getDeletedCount(); if (result.isModifiedCountAvailable() && modifiedCount != null) { modifiedCount += result.getModifiedCount(); } else { modifiedCount = null; } mergeUpserts(result.getUpserts(), indexMap); }
throw e; logger.info("{} object updated", bulkWriteResult.first().getModifiedCount()); bulkWriteResult.getNumTotalResults(), bulkWriteResult.getWarningMsg(), bulkWriteResult.getErrorMsg(), Collections.singletonList((long) (bulkWriteResult.first().getUpserts().size() + bulkWriteResult.first().getModifiedCount()))); return longQueryResult;
throw e; logger.info("{} object updated", bulkWriteResult.first().getModifiedCount()); bulkWriteResult.getNumTotalResults(), bulkWriteResult.getWarningMsg(), bulkWriteResult.getErrorMsg(), Collections.singletonList((long) (bulkWriteResult.first().getUpserts().size() + bulkWriteResult.first().getModifiedCount()))); return longQueryResult;
static BulkWriteResult translateBulkWriteResult(final com.mongodb.bulk.BulkWriteResult bulkWriteResult, final Decoder<DBObject> decoder) { if (bulkWriteResult.wasAcknowledged()) { Integer modifiedCount = (bulkWriteResult.isModifiedCountAvailable()) ? bulkWriteResult.getModifiedCount() : null; return new AcknowledgedBulkWriteResult(bulkWriteResult.getInsertedCount(), bulkWriteResult.getMatchedCount(), bulkWriteResult.getDeletedCount(), modifiedCount, translateBulkWriteUpserts(bulkWriteResult.getUpserts(), decoder)); } else { return new UnacknowledgedBulkWriteResult(); } }
new BsonInt32(wr.getModifiedCount()));
new BsonInt32(wr.getModifiedCount()));