@Override public com.mongodb.bulk.BulkWriteResult execute() { try { return mongoOperations.execute(collectionName, collection -> { return collection.bulkWrite(models.stream().map(this::mapWriteModel).collect(Collectors.toList()), bulkOptions); }); } finally { this.bulkOptions = getBulkWriteOptions(bulkOperationContext.getBulkMode()); } }
doc, UPDATE_WITH_UPSERT)); collection.bulkWrite(updates); } else { collection.insertMany(bulkInserts, INSERT_UNORDERED);
@Override public com.mongodb.bulk.BulkWriteResult execute() { try { return mongoOperations.execute(collectionName, collection -> { return collection.bulkWrite(models.stream().map(this::mapWriteModel).collect(Collectors.toList()), bulkOptions); }); } finally { this.bulkOptions = getBulkWriteOptions(bulkOperationContext.getBulkMode()); } }
public void close() { if(ops.size()>0 ){ collection.bulkWrite(ops); ops.clear(); } } }
public BulkWriteResult remove(List<? extends Bson> queryList, boolean multi) { List<WriteModel<Document>> actions = new ArrayList<>(queryList.size()); if (multi) { for (Bson document : queryList) { actions.add(new DeleteManyModel<>(document)); } } else { for (Bson document : queryList) { actions.add(new DeleteOneModel<>(document)); } } return dbCollection.bulkWrite(actions, new BulkWriteOptions().ordered(false)); }
public BulkWriteResult replace(List<? extends Bson> queries, List<? extends Bson> updates, boolean upsert) { if (queries.size() != updates.size()) { throw wrongQueryUpdateSize(queries, updates); } Iterator<? extends Bson> queryIterator = queries.iterator(); Iterator<? extends Bson> updateIterator = updates.iterator(); List<WriteModel<Document>> actions = new ArrayList<>(queries.size()); UpdateOptions updateOptions = new UpdateOptions().upsert(upsert); while (queryIterator.hasNext()) { Bson query = queryIterator.next(); Bson update = updateIterator.next(); actions.add(new ReplaceOneModel<>(query, (Document) update, updateOptions)); } return dbCollection.bulkWrite(actions, new BulkWriteOptions().ordered(false)); }
@Override public void storeAll(Map<String, Supplement> map) { List<InsertOneModel> batch = new LinkedList<InsertOneModel>(); for (Map.Entry<String, Supplement> entry : map.entrySet()) { String key = entry.getKey(); Supplement value = entry.getValue(); batch.add(new InsertOneModel( new Document("name", value.getName()).append("price", value.getPrice()) .append("_id", key))); } this.collection.bulkWrite(batch, new BulkWriteOptions().ordered(false)); }
public void createOrUpdateBulk(final Collection<V> values, final long maxTime, final TimeUnit timeUnit) { if (values.isEmpty()) { return; } final List<ReplaceOneModel<Document>> bulkOperations = values.stream() .map(value -> new ReplaceOneModel<>( eq(ID, keyOf(value)), encode(value), BULK_UPSERT_OPERATION)) .collect(toList()); collectionWithWriteTimeout(maxTime, timeUnit) .bulkWrite(bulkOperations, BULK_WRITE_OPTIONS); }
public void createOrUpdateBulk(final Collection<V> values, final long maxTime, final TimeUnit timeUnit) { if (values.isEmpty()) { return; } final List<ReplaceOneModel<Document>> bulkOperations = values.stream() .map(value -> new ReplaceOneModel<>( eq(ID, keyOf(value)), encode(value), BULK_UPSERT_OPERATION)) .collect(toList()); collectionWithWriteTimeout(maxTime, timeUnit) .bulkWrite(bulkOperations, BULK_WRITE_OPTIONS); }
public static BulkOperationResult bulkUpsertDocuments( final MongoCollection<BsonDocument> coll, final BsonArray documents, final BsonDocument filter, final BsonDocument shardKeys) { Objects.requireNonNull(coll); Objects.requireNonNull(documents); ObjectId newEtag = new ObjectId(); List<WriteModel<BsonDocument>> wm = getBulkWriteModel( coll, documents, filter, shardKeys, newEtag); BulkWriteResult result = coll.bulkWrite(wm, BWO_NOT_ORDERED); return new BulkOperationResult(HttpStatus.SC_OK, newEtag, result); }
@Override public void saveStates(List<State> list) { MongoDbOperations.doDbOperation(() -> { List<WriteModel<Document>> operations = new ArrayList<>(); for (State state : list) { operations.add(new UpdateOneModel<>(new Document("clz", state.getSagaStateId()).append("sid", state.getId()), new Document("$set",new Document("s", state.getState())),new UpdateOptions().upsert(true))); } final BulkWriteResult bulkWriteResult = states.bulkWrite(operations); return bulkWriteResult; }); } }
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); }
@Test public void testBulkInsert() throws Exception { List<WriteModel<Document>> inserts = new ArrayList<>(); inserts.add(new InsertOneModel<>(json("_id: 1"))); inserts.add(new InsertOneModel<>(json("_id: 2"))); inserts.add(new InsertOneModel<>(json("_id: 3"))); BulkWriteResult result = collection.bulkWrite(inserts); assertThat(result.getInsertedCount()).isEqualTo(3); }
private Function<Exchange, Object> createDoBulkWrite() { return exchange -> { try { MongoCollection<BasicDBObject> dbCol = calculateCollection(exchange); Boolean ordered = exchange.getIn().getHeader(MongoDbConstants.BULK_ORDERED, Boolean.TRUE, Boolean.class); BulkWriteOptions options = new BulkWriteOptions().ordered(ordered); @SuppressWarnings("unchecked") List<WriteModel<BasicDBObject>> requests = exchange.getIn().getMandatoryBody((Class<List<WriteModel<BasicDBObject>>>)(Class<?>)List.class); BulkWriteResult result = dbCol.bulkWrite(requests, options); return result; } catch (InvalidPayloadException e) { throw new CamelMongoDbException("Invalid payload for bulk write", e); } }; }
private void removeInBulk(boolean ordered) { DeleteManyModel<Document> deleteOp = new DeleteManyModel<>(json("field: 'y'")); BulkWriteResult result = collection.bulkWrite(Collections.singletonList(deleteOp), new BulkWriteOptions().ordered(ordered)); assertThat(result.getDeletedCount()).isEqualTo(3); assertThat(collection.countDocuments()).isZero(); }
@NotNull @Override public BulkWriteResult bulkWrite(@NotNull ClientSession clientSession, @NotNull List<? extends WriteModel<? extends TDocument>> requests, @NotNull BulkWriteOptions options) { maybeThrowExceptionBeforeUpdate(); BulkWriteResult result = collection.bulkWrite(clientSession, requests, options); maybeThrowExceptionAfterUpdate(); return result; }
@NotNull @Override public BulkWriteResult bulkWrite(@NotNull List<? extends WriteModel<? extends TDocument>> requests, @NotNull BulkWriteOptions options) { maybeThrowExceptionBeforeUpdate(); BulkWriteResult result = collection.bulkWrite(requests, options); maybeThrowExceptionAfterUpdate(); return result; }
@NotNull @Override public BulkWriteResult bulkWrite(@NotNull ClientSession clientSession, @NotNull List<? extends WriteModel<? extends TDocument>> requests) { maybeThrowExceptionBeforeUpdate(); BulkWriteResult result = collection.bulkWrite(clientSession, requests); maybeThrowExceptionAfterUpdate(); return result; }
@NotNull @Override public BulkWriteResult bulkWrite(@NotNull List<? extends WriteModel<? extends TDocument>> requests) { maybeThrowExceptionBeforeUpdate(); BulkWriteResult result = collection.bulkWrite(requests); maybeThrowExceptionAfterUpdate(); return result; }
private BulkWriteResult commitWrite(List<WriteModel<? extends Document>> lst) { BulkWriteOptions bulkWriteOptions = new BulkWriteOptions(); bulkWriteOptions.ordered(ordered); return driver.getCollection(driver.getDb(db), collection, ReadPreference.nearest(), wc).bulkWrite(lst, bulkWriteOptions); } }