List of usage examples for com.mongodb.client.model DeleteManyModel DeleteManyModel
public DeleteManyModel(final Bson filter)
From source file:com.mastfrog.asyncpromises.mongo.BulkWriteBuilderImpl.java
License:Open Source License
@Override public BulkWriteBuilder<T> deleteMany(Bson filter) { requests.add(new DeleteManyModel<T>(filter)); return this; }
From source file:com.mastfrog.asyncpromises.mongo.BulkWriteBuilderImpl.java
License:Open Source License
@Override public QueryBuilder<T, BulkWriteBuilder<T>> deleteMany() { return new QueryBuilderImpl<>(new QueryBuilderImpl.Factory<T, BulkWriteBuilder<T>>() { @Override/*w w w.j av a 2 s. c o m*/ public BulkWriteBuilderImpl<T> create(Document document) { requests.add(new DeleteManyModel<T>(document)); return BulkWriteBuilderImpl.this; } }); }
From source file:com.px100systems.data.plugin.storage.mongo.MongoDatabaseStorage.java
License:Open Source License
private void batchSave(MongoDatabase db, List<StoredBean> inserts, List<StoredBean> updates, List<Delete> deletes) { Map<String, List<WriteModel<Document>>> batches = new HashMap<>(); for (StoredBean bean : inserts) { String unitName = bean.unitName(); List<WriteModel<Document>> batch = batches.get(unitName); if (batch == null) { batch = new ArrayList<>(); batches.put(unitName, batch); }// w ww . j a v a2s. c o m batch.add(new InsertOneModel<Document>(serialize(bean))); } for (StoredBean bean : updates) { String unitName = bean.unitName(); List<WriteModel<Document>> batch = batches.get(unitName); if (batch == null) { batch = new ArrayList<>(); batches.put(unitName, batch); } batch.add(new ReplaceOneModel<Document>(Filters.eq("id", bean.getId()), serialize(bean))); } for (Delete delete : deletes) { String unitName = delete.getUnitName(); List<WriteModel<Document>> batch = batches.get(unitName); if (batch == null) { batch = new ArrayList<>(); batches.put(unitName, batch); } batch.add(delete.getId() == null ? new DeleteManyModel<Document>(delete.getCriteria().convert(new FilterQueryBuilder())) : new DeleteOneModel<Document>(Filters.eq("id", delete.getId()))); } for (Map.Entry<String, List<WriteModel<Document>>> e : batches.entrySet()) db.getCollection(e.getKey()).bulkWrite(e.getValue()); }
From source file:org.eclipse.ditto.services.utils.persistence.mongo.ops.MongoOpsUtil.java
License:Open Source License
private static Source<Optional<Throwable>, NotUsed> doDeleteByFilter(final MongoCollection<Document> collection, final Bson filter) { // https://stackoverflow.com/a/33164008 // claims unordered bulk ops halve MongoDB load final List<WriteModel<Document>> writeModel = Collections.singletonList(new DeleteManyModel<>(filter)); final BulkWriteOptions options = new BulkWriteOptions().ordered(false); return Source.fromPublisher(collection.bulkWrite(writeModel, options)).map(result -> { if (LOGGER.isDebugEnabled()) { // in contrast to Bson, BsonDocument has meaningful toString() final BsonDocument filterBsonDoc = BsonUtil.toBsonDocument(filter); LOGGER.debug("Deleted <{}> documents from collection <{}>. Filter was <{}>.", result.getDeletedCount(), collection.getNamespace(), filterBsonDoc); }//from www. j av a2s .com return Optional.<Throwable>empty(); }).recoverWithRetries(RETRY_ATTEMPTS, new PFBuilder<Throwable, Source<Optional<Throwable>, NotUsed>>() .matchAny(throwable -> Source.single(Optional.of(throwable))).build()); }
From source file:org.opencb.commons.datastore.mongodb.MongoDBNativeQuery.java
License:Apache License
public BulkWriteResult remove(List<? extends Bson> queryList, boolean multi) { List<WriteModel<Document>> actions = new ArrayList<>(queryList.size()); if (multi) {//from w w w. j a va 2 s . c o m 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)); }
From source file:org.restheart.db.DocumentDAO.java
License:Open Source License
@Override public BulkOperationResult bulkDeleteDocuments(String dbName, String collName, BsonDocument filter, BsonDocument shardedKeys) {//from w ww .j a va2 s. c o m MongoDatabase mdb = client.getDatabase(dbName); MongoCollection<BsonDocument> mcoll = mdb.getCollection(collName, BsonDocument.class); List<WriteModel<BsonDocument>> deletes = new ArrayList<>(); Bson _filter; if (shardedKeys != null) { _filter = and(filter, shardedKeys); } else { _filter = filter; } deletes.add(new DeleteManyModel<>(_filter)); BulkWriteResult result = mcoll.bulkWrite(deletes); return new BulkOperationResult(HttpStatus.SC_OK, null, result); }
From source file:org.wso2.extension.siddhi.store.mongodb.MongoDBEventTable.java
License:Open Source License
@Override protected void delete(List<Map<String, Object>> deleteConditionParameterMaps, CompiledCondition compiledCondition) throws ConnectionUnavailableException { List<DeleteManyModel<Document>> parsedRecords = deleteConditionParameterMaps.stream() .map((Map<String, Object> conditionParameterMap) -> { Document deleteFilter = MongoTableUtils .resolveCondition((MongoCompiledCondition) compiledCondition, conditionParameterMap); return new DeleteManyModel<Document>(deleteFilter); }).collect(Collectors.toList()); this.bulkWrite(parsedRecords); }