/** * Delete a record from the database. * * @param table * The name of the table * @param key * The record key of the record to delete. * @return Zero on success, a non-zero error code on error. See the {@link DB} * class's description for a discussion of error codes. */ @Override public Status delete(String table, String key) { try { MongoCollection<Document> collection = database.getCollection(table); Document query = new Document("_id", key); DeleteResult result = collection.withWriteConcern(writeConcern).deleteOne(query); if (result.wasAcknowledged() && result.getDeletedCount() == 0) { System.err.println("Nothing deleted for key " + key); return Status.NOT_FOUND; } return Status.OK; } catch (Exception e) { System.err.println(e.toString()); return Status.ERROR; } }
private void executeDelete(@Nullable final ClientSession clientSession, final BsonValue id) { DeleteResult result; if (clientSession != null) { result = filesCollection.deleteOne(clientSession, new BsonDocument("_id", id)); chunksCollection.deleteMany(clientSession, new BsonDocument("files_id", id)); } else { result = filesCollection.deleteOne(new BsonDocument("_id", id)); chunksCollection.deleteMany(new BsonDocument("files_id", id)); } if (result.wasAcknowledged() && result.getDeletedCount() == 0) { throw new MongoGridFSException(format("No file found with the id: %s", id)); } }
@Override public long delete(Map<String, Object> query) { DeleteResult result = collection.deleteMany(new Document(query)); return result.wasAcknowledged() ? result.getDeletedCount() : -result.getDeletedCount(); }
private Function<Exchange, Object> createDoRemove() { return exchange -> { try { MongoCollection<BasicDBObject> dbCol = calculateCollection(exchange); BasicDBObject removeObj = exchange.getIn().getMandatoryBody(BasicDBObject.class); DeleteResult result = dbCol.deleteMany(removeObj); if (result.wasAcknowledged()) { exchange.getOut().setHeader(MongoDbConstants.RECORDS_AFFECTED, result.getDeletedCount()); } return result; } catch (InvalidPayloadException e) { throw new CamelMongoDbException("Invalid payload for remove", e); } }; }
@Override public Map<String, Object> delete(String db, String collection, Map<String, Object> query, boolean multiple, de.caluga.morphium.driver.WriteConcern wc) throws MorphiumDriverException { DriverHelper.replaceMorphiumIdByObjectId(query); return DriverHelper.doCall(() -> { MongoDatabase database = mongo.getDatabase(db); MongoCollection<Document> coll = database.getCollection(collection); DeleteResult res; if (multiple) { if (currentTransaction.get() == null) { res = coll.deleteMany(new BasicDBObject(query)); } else { res = coll.deleteMany(currentTransaction.get().getSession(), new BasicDBObject(query)); } } else { if (currentTransaction.get() == null) { res = coll.deleteOne(new BasicDBObject(query)); } else { res = coll.deleteOne(currentTransaction.get().getSession(), new BasicDBObject(query)); } } Map<String, Object> r = new HashMap<>(); r.put("deleted", res.getDeletedCount()); r.put("acc", res.wasAcknowledged()); return r; }, retriesOnNetworkError, sleepBetweenErrorRetries); }
@Override public void deleteEntryWithoutReferences(String id) { try { String idFieldName = getPrefixedIdField(); DeleteResult result = getCollection().deleteOne( MongoDBSerializationHelper.fieldMapToBson(idFieldName, autoincrementId ? Long.valueOf(id) : id)); if (!result.wasAcknowledged()) { throw new DirectoryException( "Error while deleting the entry, the request has not been acknowledged by the server"); } } catch (MongoWriteException e) { throw new DirectoryException(e); } }
private void removeLinksFor(String field, String value, MongoDBSession session) { try { DeleteResult result = getCollection(session) .deleteMany(MongoDBSerializationHelper.fieldMapToBson(field, value)); if (!result.wasAcknowledged()) { throw new DirectoryException( "Error while deleting the entry, the request has not been acknowledged by the server"); } } catch (MongoWriteException e) { throw new DirectoryException(e); } }
private void executeDelete(@Nullable final ClientSession clientSession, final BsonValue id) { DeleteResult result; if (clientSession != null) { result = filesCollection.deleteOne(clientSession, new BsonDocument("_id", id)); chunksCollection.deleteMany(clientSession, new BsonDocument("files_id", id)); } else { result = filesCollection.deleteOne(new BsonDocument("_id", id)); chunksCollection.deleteMany(new BsonDocument("files_id", id)); } if (result.wasAcknowledged() && result.getDeletedCount() == 0) { throw new MongoGridFSException(format("No file found with the id: %s", id)); } }
private void executeDelete(@Nullable final ClientSession clientSession, final BsonValue id) { DeleteResult result; if (clientSession != null) { result = filesCollection.deleteOne(clientSession, new BsonDocument("_id", id)); chunksCollection.deleteMany(clientSession, new BsonDocument("files_id", id)); } else { result = filesCollection.deleteOne(new BsonDocument("_id", id)); chunksCollection.deleteMany(new BsonDocument("files_id", id)); } if (result.wasAcknowledged() && result.getDeletedCount() == 0) { throw new MongoGridFSException(format("No file found with the id: %s", id)); } }
private static int doRemove(final MongoDBQueryDescriptor queryDesc, final MongoCollection<Document> collection, MongoDBQueryDescriptor.Operation operation) { Document query = queryDesc.getCriteria(); Document options = queryDesc.getOptions(); Boolean justOne = FALSE; WriteConcern wc = null; if ( options != null ) { justOne = (Boolean) options.get( "justOne" ); justOne = ( justOne != null ) ? justOne : FALSE; Document o = (Document) options.get( "writeConcern" ); wc = getWriteConcern( o ); } MongoCollection<Document> collectionWithConcern = collection.withWriteConcern( ( wc != null ? wc : collection.getWriteConcern() ) ); DeleteResult result = null; switch ( operation ) { case REMOVE: result = justOne ? collectionWithConcern.deleteOne( query ) : collectionWithConcern.deleteMany( query ); break; case DELETEONE: result = collectionWithConcern.deleteOne( query ) ; break; case DELETEMANY: result = collectionWithConcern.deleteMany( query ); break; } if ( result.wasAcknowledged() ) { return (int) result.getDeletedCount(); } return -1; // Not sure if we should throw an exception instead? }
private static int doRemove(final MongoDBQueryDescriptor queryDesc, final MongoCollection<Document> collection, MongoDBQueryDescriptor.Operation operation) { Document query = queryDesc.getCriteria(); Document options = queryDesc.getOptions(); Boolean justOne = FALSE; WriteConcern wc = null; if ( options != null ) { justOne = (Boolean) options.get( "justOne" ); justOne = ( justOne != null ) ? justOne : FALSE; Document o = (Document) options.get( "writeConcern" ); wc = getWriteConcern( o ); } MongoCollection<Document> collectionWithConcern = collection.withWriteConcern( ( wc != null ? wc : collection.getWriteConcern() ) ); DeleteResult result = null; switch ( operation ) { case REMOVE: result = justOne ? collectionWithConcern.deleteOne( query ) : collectionWithConcern.deleteMany( query ); break; case DELETEONE: result = collectionWithConcern.deleteOne( query ) ; break; case DELETEMANY: result = collectionWithConcern.deleteMany( query ); break; } if ( result.wasAcknowledged() ) { return (int) result.getDeletedCount(); } return -1; // Not sure if we should throw an exception instead? }
DeleteResult result = associationCollection.deleteMany( query ); long nAffected = -1; if ( result.wasAcknowledged() ) { nAffected = result.getDeletedCount();
DeleteResult result = associationCollection.deleteMany( query ); long nAffected = -1; if ( result.wasAcknowledged() ) { nAffected = result.getDeletedCount();