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());