Search in sources :

Example 36 with DeleteResult

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();
}
Also used : ObjectId(org.bson.types.ObjectId) Document(org.bson.Document) DatabaseException(com.bluenimble.platform.db.DatabaseException) DeleteResult(com.mongodb.client.result.DeleteResult)

Example 37 with DeleteResult

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;
    }
}
Also used : Document(org.bson.Document) DeleteResult(com.mongodb.client.result.DeleteResult) DBException(site.ycsb.DBException)

Example 38 with DeleteResult

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");
    });
}
Also used : DeleteOptions(com.mongodb.client.model.DeleteOptions) FindOneAndDeleteOptions(com.mongodb.client.model.FindOneAndDeleteOptions) DeleteResult(com.mongodb.client.result.DeleteResult) Test(org.junit.jupiter.api.Test)

Example 39 with DeleteResult

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");
    });
}
Also used : DeleteOptions(com.mongodb.client.model.DeleteOptions) FindOneAndDeleteOptions(com.mongodb.client.model.FindOneAndDeleteOptions) DeleteResult(com.mongodb.client.result.DeleteResult) Test(org.junit.jupiter.api.Test)

Example 40 with DeleteResult

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();
}
Also used : MongoClient(com.mongodb.client.MongoClient) Consumer(java.util.function.Consumer) CodecRegistry(org.bson.codecs.configuration.CodecRegistry) UpdateResult(com.mongodb.client.result.UpdateResult) DeleteResult(com.mongodb.client.result.DeleteResult) MongoDatabase(com.mongodb.client.MongoDatabase)

Aggregations

DeleteResult (com.mongodb.client.result.DeleteResult)46 Document (org.bson.Document)20 UpdateResult (com.mongodb.client.result.UpdateResult)10 BsonDocument (org.bson.BsonDocument)9 Test (org.junit.jupiter.api.Test)9 BasicDBObject (com.mongodb.BasicDBObject)7 WriteConcern (com.mongodb.WriteConcern)6 Bson (org.bson.conversions.Bson)6 MongoException (com.mongodb.MongoException)5 ArrayList (java.util.ArrayList)5 DataAccessException (org.springframework.dao.DataAccessException)5 MongoGridFSException (com.mongodb.MongoGridFSException)4 MongoClient (com.mongodb.client.MongoClient)4 OptimisticLockingFailureException (org.springframework.dao.OptimisticLockingFailureException)4 ReadPreference (com.mongodb.ReadPreference)3 MongoDatabase (com.mongodb.client.MongoDatabase)3 InsertOneResult (com.mongodb.client.result.InsertOneResult)3 MongoClient (com.mongodb.reactivestreams.client.MongoClient)3 MongoDatabase (com.mongodb.reactivestreams.client.MongoDatabase)3 ObjectId (org.bson.types.ObjectId)3