use of com.mongodb.client.result.DeleteResult in project serverless by bluenimble.
the class MongoDatabaseImpl method delete.
@Override
public int delete(String eType, Object id) throws DatabaseException {
checkNotNull(eType);
if (id == null) {
throw new DatabaseException("can't delete object (missing object id)");
}
MongoCollection<Document> collection = db.getCollection(eType);
if (collection == null) {
return 0;
}
DeleteResult result = collection.deleteOne(eq(DatabaseObjectImpl.ObjectIdKey, new ObjectId(String.valueOf(id))));
return (int) result.getDeletedCount();
}
use of com.mongodb.client.result.DeleteResult in project YCSB by brianfrankcooper.
the class MongoDbClient method delete.
/**
* 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;
}
}
use of com.mongodb.client.result.DeleteResult in project mongo-java-driver by mongodb.
the class MongoCollectionImplTest method testDeleteOne.
@Test
public void testDeleteOne() {
DeleteOptions customOptions = new DeleteOptions().collation(collation);
assertAll("deleteOne", () -> assertAll("check validation", () -> assertThrows(IllegalArgumentException.class, () -> collection.deleteOne(null)), () -> assertThrows(IllegalArgumentException.class, () -> collection.deleteOne(filter, null)), () -> assertThrows(IllegalArgumentException.class, () -> collection.deleteOne(clientSession, null)), () -> assertThrows(IllegalArgumentException.class, () -> collection.deleteOne(clientSession, filter, null)), () -> assertThrows(IllegalArgumentException.class, () -> collection.deleteOne(null, filter)), () -> assertThrows(IllegalArgumentException.class, () -> collection.deleteOne(clientSession, filter, null))), () -> {
Publisher<DeleteResult> expected = mongoOperationPublisher.deleteOne(null, filter, new DeleteOptions());
assertPublisherIsTheSameAs(expected, collection.deleteOne(filter), "Default");
}, () -> {
Publisher<DeleteResult> expected = mongoOperationPublisher.deleteOne(null, filter, customOptions);
assertPublisherIsTheSameAs(expected, collection.deleteOne(filter, customOptions), "With options");
}, () -> {
Publisher<DeleteResult> expected = mongoOperationPublisher.deleteOne(clientSession, filter, new DeleteOptions());
assertPublisherIsTheSameAs(expected, collection.deleteOne(clientSession, filter), "With client session");
}, () -> {
Publisher<DeleteResult> expected = mongoOperationPublisher.deleteOne(clientSession, filter, customOptions);
assertPublisherIsTheSameAs(expected, collection.deleteOne(clientSession, filter, customOptions), "With client session & options");
});
}
use of com.mongodb.client.result.DeleteResult in project mongo-java-driver by mongodb.
the class MongoCollectionImplTest method testDeleteMany.
@Test
public void testDeleteMany() {
DeleteOptions customOptions = new DeleteOptions().collation(collation);
assertAll("deleteMany", () -> assertAll("check validation", () -> assertThrows(IllegalArgumentException.class, () -> collection.deleteMany(null)), () -> assertThrows(IllegalArgumentException.class, () -> collection.deleteMany(filter, null)), () -> assertThrows(IllegalArgumentException.class, () -> collection.deleteMany(clientSession, null)), () -> assertThrows(IllegalArgumentException.class, () -> collection.deleteMany(clientSession, filter, null)), () -> assertThrows(IllegalArgumentException.class, () -> collection.deleteMany(null, filter)), () -> assertThrows(IllegalArgumentException.class, () -> collection.deleteMany(clientSession, filter, null))), () -> {
Publisher<DeleteResult> expected = mongoOperationPublisher.deleteMany(null, filter, new DeleteOptions());
assertPublisherIsTheSameAs(expected, collection.deleteMany(filter), "Default");
}, () -> {
Publisher<DeleteResult> expected = mongoOperationPublisher.deleteMany(null, filter, customOptions);
assertPublisherIsTheSameAs(expected, collection.deleteMany(filter, customOptions), "With options");
}, () -> {
Publisher<DeleteResult> expected = mongoOperationPublisher.deleteMany(clientSession, filter, new DeleteOptions());
assertPublisherIsTheSameAs(expected, collection.deleteMany(clientSession, filter), "With client session");
}, () -> {
Publisher<DeleteResult> expected = mongoOperationPublisher.deleteMany(clientSession, filter, customOptions);
assertPublisherIsTheSameAs(expected, collection.deleteMany(clientSession, filter, customOptions), "With client session & options");
});
}
use of com.mongodb.client.result.DeleteResult in project mongo-java-driver by mongodb.
the class PojoQuickTour method main.
/**
* Run this main method to see the output of this quick example.
*
* @param args takes an optional single argument for the connection string
*/
public static void main(final String[] args) {
MongoClient mongoClient;
if (args.length == 0) {
// connect to the local database server
mongoClient = MongoClients.create();
} else {
mongoClient = MongoClients.create(args[0]);
}
// create codec registry for POJOs
CodecRegistry pojoCodecRegistry = fromRegistries(MongoClientSettings.getDefaultCodecRegistry(), fromProviders(PojoCodecProvider.builder().automatic(true).build()));
// get handle to "mydb" database
MongoDatabase database = mongoClient.getDatabase("mydb").withCodecRegistry(pojoCodecRegistry);
// get a handle to the "people" collection
MongoCollection<Person> collection = database.getCollection("people", Person.class);
// drop all the data in it
collection.drop();
// make a document and insert it
Person ada = new Person("Ada Byron", 20, new Address("St James Square", "London", "W1"));
System.out.println("Original Person Model: " + ada);
collection.insertOne(ada);
// Person will now have an ObjectId
System.out.println("Mutated Person Model: " + ada);
// get it (since it's the only one in there since we dropped the rest earlier on)
Person somebody = collection.find().first();
System.out.println(somebody);
// now, lets add some more people so we can explore queries and cursors
List<Person> people = asList(new Person("Charles Babbage", 45, new Address("5 Devonshire Street", "London", "W11")), new Person("Alan Turing", 28, new Address("Bletchley Hall", "Bletchley Park", "MK12")), new Person("Timothy Berners-Lee", 61, new Address("Colehill", "Wimborne", null)));
collection.insertMany(people);
System.out.println("total # of people " + collection.countDocuments());
System.out.println("");
// lets get all the documents in the collection and print them out
Consumer<Person> printBlock = new Consumer<Person>() {
@Override
public void accept(final Person person) {
System.out.println(person);
}
};
collection.find().forEach(printBlock);
System.out.println("");
// now use a query to get 1 document out
somebody = collection.find(eq("address.city", "Wimborne")).first();
System.out.println(somebody);
System.out.println("");
// now lets find every over 30
collection.find(gt("age", 30)).forEach(printBlock);
System.out.println("");
// Update One
collection.updateOne(eq("name", "Ada Byron"), combine(set("age", 23), set("name", "Ada Lovelace")));
System.out.println("");
// Update Many
UpdateResult updateResult = collection.updateMany(not(eq("zip", null)), set("zip", null));
System.out.println(updateResult.getModifiedCount());
System.out.println("");
// Replace One
updateResult = collection.replaceOne(eq("name", "Ada Lovelace"), ada);
System.out.println(updateResult.getModifiedCount());
// Delete One
collection.deleteOne(eq("address.city", "Wimborne"));
// Delete Many
DeleteResult deleteResult = collection.deleteMany(eq("address.city", "London"));
System.out.println(deleteResult.getDeletedCount());
// Clean up
database.drop();
// release resources
mongoClient.close();
}
Aggregations