In this post I’d like to show how to perform basic CRUD operations against a MongoDB database using the Java driver.
For this post, lets assume that we have a todo database with a collection of todo items. Each item has a task and a priority.
In terms of JSON notation, an example item would look like:
{
"_id" : { "$oid" : "4bffb75121eec88a67ff6ec8"} ,
"task" : "Write Code" ,
"priority" : "high"
}Now that we have defined what we are storing in the database, lets have a look at how we connect to Mongo.
Connection to the database
To connect to a MongoDB database, we would use code similar to that below. In this code you can see that we are connecting to a database called todo and getting the collection called items. In MongoDB if neither of these items exist, they will be automatically created.
Mongo mongo = new Mongo();
DB db = mongo.getDB("todo");
DBCollection items = db.getCollection("items");
Creating documents
To add a document to a collection, we use the insert() method of the collection.
BasicDBObject doc1 = new BasicDBObject();
doc1.put("task", "Write Code");
doc1.put("priority", "high");
items.insert(doc1);Retrieving documents
To retrieve documents from a collection, we can create a query and then iterate through it with a cursor.
BasicDBObject query = new BasicDBObject();
query.put("priority", "highest");
DBCursor cursor = items.find(query);
// Print out "highest" priority items
while (cursor.hasNext()) {
System.out.println(cursor.next());
}This query will find all the objects in the collection that have a priority of highest. If we wanted to get all of the items in the collection, we would create the cursor without a query as shown below.
DBCursor cursor = items.find();
Updating documents
To update an object, we first have to get the object from the collection then we save it back into the collection.
BasicDBObject findTestItemQuery = new BasicDBObject();
findTestItemQuery.put("task", "Test Code");
DBCursor testItemsCursor = items.find(findTestItemQuery);
if(testItemsCursor.hasNext()) {
DBObject testCodeItem = testItemsCursor.next();
testCodeItem.put("task", "Test and Review Code");
items.save(testCodeItem);
} Deleting Documents
Finally, to delete a document or set of documents, we use the remove method of the collection.
BasicDBObject deleteQuery = new BasicDBObject();
deleteQuery.put("priority", "highest");
DBCursor cursor = items.find(deleteQuery);
while (cursor.hasNext()) {
DBObject item = cursor.next();
items.remove(item);
}

Comments
Post a Comment