Example usage for com.mongodb.client.model DeleteManyModel DeleteManyModel

List of usage examples for com.mongodb.client.model DeleteManyModel DeleteManyModel

Introduction

In this page you can find the example usage for com.mongodb.client.model DeleteManyModel DeleteManyModel.

Prototype

public DeleteManyModel(final Bson filter) 

Source Link

Document

Construct a new instance.

Usage

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);
}