All stories
Java

CURD Operations in Mongo DB

H
hemant-kumar

July 23, 2012


Syntax and exampless in Interactive shell with its equivalent code in java.

Use Database
In order to operate over a database we first have to connect to that database.
Type :   use <database name>
Suppose we have to connect to database named “mydb” then type:
use mydb

Mongo mongo = new Mongo("127.0.0.1",27017);
DB db = mongo.getDB("mydb");

Show Collections
To see all the currently existing collections in a database.
Type:   show collections

Set<String> collections = db.getCollectionNames();
for(String collection : collections)
               System.out.println(collection);

Create Collection
Here we need not to create the table well in advance. Whenever we insert some data in some an arbitrary table the engine checks whether the mentioned table exist or not. If not then the table is automatically created.

Drop Collection
Type:  db.<collection name>.drop();
Suppose we have to drop collection named “myCollection” then type:
db.myCollection.drop();

DBCollection dbColl = db.getCollection("myCollection");
dbColl.drop();

Saving data in collection

var a = {age: 23};
db.myCollection.save(a);

DBCollection dbColl = db.getCollection("myCollection");
BasicDBObject obj = new BasicDBObject("age",23);
dbColl.insert(obj);

var n = {name: 'Hemant Kumar', languages: ['c', ‘mongodb’, 'java']};
db.myCollection.save(n);

BasicDBObject obj = new BasicDBObject("name","Hemant Kumar");
ArrayList<String> list = new ArrayList<String>();
list.add("c");
list.add("mongodb");
list.add("java");
obj.append("languages",list);
dbColl.insert(obj);

var t = {name:'hemant',"info":{lang:['c', ‘mongodb’, 'java']}};
db.myCollection.save(t);
              
BasicDBObject obj = new BasicDBObject("name","Hemant Kumar");
ArrayList<String> list = new ArrayList<String>();
list.add("c");
list.add("mongodb");
list.add("java");
obj.append("info",new BasicDBObject("lang",list));
dbColl.insert(obj);

for(i=0; i<100; i++) { db.myCollection.save({a: i})       };

DBCollection dbColl = db.getCollection("myCollection");
for(int i=0; i<100; i++)
               dbColl.insert(new BasicDBObject("a",i));

Querying over a Collection

Type:  db.<Collection Name>.find();

Suppose we have to query over collection named “myCollection” then type:
db.myCollection.find();
Since the shell only displays limited results at a time, enter 'it' command to iterate over the rest.

DBCollection dbColl = db.getCollection("myCollection");
DBCursor dbCur = dbColl.find();
while(dbCur.hasNext())
               System.out.println(dbCur.next());

In Order to get single result.
Type:  db. myCollection.findOne();

DBCollection dbColl = db.getCollection("myCollection");
DBObject obj =  dbColl.findOne();
System.out.println(pbj);

More Queries

1.   Finding all documents where a == 2

db.myCollection.find({a: 2});

DBCollection dbColl = db.getCollection("myCollection");
DBCursor dbCur = dbColl.find(new BasicDBObject("a",2));
while(dbCur.hasNext())
            System.out.println(dbCur.next());

2.   Finding all documents where a == 2 && e==5

db.myCollection.find({a: 2,e:5});

DBCollection dbColl = db.getCollection("myCollection");
DBCursor dbCur = dbColl.find(new BasicDBObject("a",2).append("e",5));
while(dbCur.hasNext())
            System.out.println(dbCur.next());

3.   Finding all documents where a > 15

db.myCollection.find({a: {'$gt': 15}});

DBCollection dbColl = db.getCollection("myCollection");
DBCursor cur = dbColl.find(new BasicDBObject("a",
                                                new   BasicDBObject("$gt",15)));
while(cur.hasNext())
            System.out.println(cur.next());

4.   Finding all documents where a < 15

db.myCollection.find({a: {'$lt': 15}});

DBCollection dbColl = db.getCollection("myCollection");
DBCursor cur = dbColl.find(new BasicDBObject("a",
                                                   new   BasicDBObject("$lt",15)));
while(cur.hasNext())
            System.out.println(cur.next());

5.   Finding all documents where a >= 15

db. myCollection.find({a: {'$gte': 15}});

DBCollection dbColl = db.getCollection("myCollection");
DBCursor cur = dbColl.find(new BasicDBObject("a",
                                                   new   BasicDBObject("$gte",15)));
while(cur.hasNext())
            System.out.println(cur.next());

6.   Finding all documents where a <= 15

db.myCollection.find({a: {'$lte': 15}});

DBCollection dbColl = db.getCollection("myCollection");
DBCursor cur = dbColl.find(new BasicDBObject("a",
                                                   new   BasicDBObject("$lte",15)));
while(cur.hasNext())
            System.out.println(cur.next());

7.   Finding all documents where a != 15

db.myCollection.find({a: {'$ne': 15}});

DBCollection dbColl = db.getCollection("myCollection");
DBCursor cur = dbColl.find(new BasicDBObject("a",
                                                   new   BasicDBObject("$ne",15)));
while(cur.hasNext())
            System.out.println(cur.next());

8.   Finding all documents where a in {7,10,12,15}

db.myCollection.find({a: {'$in': [7,10,12,15]}});

DBCollection dbColl = db.getCollection("myCollection");
ArrayList list = new ArrayList();
list.add(7);
list.add(10);
list.add(12);
list.add(15);
DBCursor cur = dbColl.find(new BasicDBObject("a",
                                                new   BasicDBObject("$in",list)));
while(cur.hasNext())
            System.out.println(cur.next());

9.   Finding all documents where a not in {7,10,12,15}

db.myCollection.find({a: {'$nin': [7,10,12,15]}})

DBCollection dbColl = db.getCollection("myCollection");
ArrayList list = new ArrayList();
list.add(7);
list.add(10);
list.add(12);
list.add(15);
DBCursor cur = dbColl.find(new BasicDBObject("a",
                                                new   BasicDBObject("$nin",list)));
while(cur.hasNext())
            System.out.println(cur.next());

10. Finding all documents where a not in {7,10,12,15} and less than 12

db.myCollection.find({a: {'$nin': [7,10,12,15],$lt:12}})

DBCollection dbColl = db.getCollection("myCollection");
ArrayList list = new ArrayList();
list.add(7);
list.add(10);
list.add(12);
list.add(15);
DBCursor cur = dbColl.find(new BasicDBObject("a",
                                             new   BasicDBObject("$nin", list)).append("$lt",12));
while(cur.hasNext())
            System.out.println(cur.next());

Updates

Replace full document.
db.myCollection.update({a: 2}, {a:22,i:20})

DBCollection dbColl = db.getCollection("myCollection");
dbColl.findAndModify(new BasicDBObject("a",2),
                                       new BasicDBObject("a",22).append("i",20));

Partial updates.
db.myCollection.update({name:"Mac Oleman"},{"$set": {"info":{"age":23}}})

DBCollection dbColl = db.getCollection("myCollection");
dbColl.findAndModify(new BasicDBObject("name","Mac Oleman"),
                                        new BasicDBObject("$set",
                                        new BasicDBObject("info",
                                        new BasicDBObject("age",23))));

You can also pull items from arrays:
db.myCollection.update({‘name’: 'hemant'}, {'$pull': {'languages': ‘sql’} });

DBCollection dbColl = db.getCollection("myCollection");
dbColl.findAndModify(new BasicDBObject("name","hemant"),
                                          new BasicDBObject("$pull",
                                          new BasicDBObject("languages","sql")));

You can also push items from arrays:
db db.users.update({name: 'hemant'}, {'$push': {'languages': ‘java’} })

DBCollection dbColl = db.getCollection("myCollection");
dbColl.findAndModify(new BasicDBObject("name","hemant"),
                                       new BasicDBObject("$push",
                                       new BasicDBObject("languages","java")));

Deleting data

To delete matching documents only, add a query selector to the remove method.
db.myCollection.remove({“name”:”hemant"})

DBCollection dbColl = db.getCollection("myCollection");
dbColl.remove(new BasicDBObject("name","hemant"));

To delete everything from a collection:
db.myCollection.remove();

DBCollection dbColl = db.getCollection("myCollection");
dbColl.remove();

Drop Database

Drops current database which is in use.
db.dropDatabase()

mongo.dropDatabase("mydb");

Sorting

Ascending Order
db.myCollection.find().sort({a: 1});

DBCollection dbcoll = db.getCollection("myCollection");
DBCursor cur = dbcoll.find().sort(new BasicDBObject("a",1));
while(cur.hasNext())
               System.out.println(cur.next());

Descending Order
db.myCollection.find().sort({a: -1});

DBCollection dbcoll = db.getCollection("myCollection");
DBCursor cur = dbcoll.find().sort(new BasicDBObject("a",-1));
while(cur.hasNext())
               System.out.println(cur.next());
              



Java

0

If you found this helpful, give it some claps!

SHARE THIS ARTICLE

Share on X
LinkedIn

Responses0

Sign in to join the conversation

Sign in