Using Select in MongoDB

MongoDB is a cross-platform, document oriented database that provides, high performance, high availability, and easy scalability. MongoDB works on concept of collection and document.

MongoDB as-a-Service

private static void selectAllRecordsFromACollection(DBCollection collection) {

    DBCursor cursor = collection.find();

    while(cursor.hasNext()) {

        System.out.println(cursor.next());

    }

}

Output:

{ "_id" : { "$oid" : "538782753641d31b0cad0142"} , "employeeId" : 1 , "employeeName" : "TestEmployee_1"}

{ "_id" : { "$oid" : "538782753641d31b0cad0143"} , "employeeId" : 2 , "employeeName" : "TestEmployee_2"}

{ "_id" : { "$oid" : "538782753641d31b0cad0144"} , "employeeId" : 3 , "employeeName" : "TestEmployee_3"}

{ "_id" : { "$oid" : "538782753641d31b0cad0145"} , "employeeId" : 4 , "employeeName" : "TestEmployee_4"}

{ "_id" : { "$oid" : "538782753641d31b0cad0146"} , "employeeId" : 5 , "employeeName" : "TestEmployee_5"}

{ "_id" : { "$oid" : "538782753641d31b0cad0147"} , "employeeId" : 6 , "employeeName" : "TestEmployee_6"}

{ "_id" : { "$oid" : "538782753641d31b0cad0148"} , "employeeId" : 7 , "employeeName" : "TestEmployee_7"}

{ "_id" : { "$oid" : "538782753641d31b0cad0149"} , "employeeId" : 8 , "employeeName" : "TestEmployee_8"}

{ "_id" : { "$oid" : "538782753641d31b0cad014a"} , "employeeId" : 9 , "employeeName" : "TestEmployee_9"}

{ "_id" : { "$oid" : "538782753641d31b0cad014b"} , "employeeId" : 10 , "employeeName" : "TestEmployee_10"}

Select first document from a collection

private static void selectFirstRecordInCollection(DBCollection collection) {

    DBObject dbObject = collection.findOne();

    System.out.println(dbObject);

}

Output:

{ "_id" : { "$oid" : "538782a53641ed9125df86c0"} , "employeeId" : 1 , "employeeName" : "TestEmployee_1"}

Select single document and limited field(s) from a collection

private static void selectSingleRecordAndFieldByRecordNumber(DBCollection collection) {

    BasicDBObject whereQuery = new BasicDBObject();

    whereQuery.put("employeeId", 5);

    BasicDBObject fields = new BasicDBObject();

    fields.put("employeeId", 1);

 

    DBCursor cursor = collection.find(whereQuery, fields);

    while (cursor.hasNext()) {

        System.out.println(cursor.next());

    }

}

    

Output:

{ "_id" : { "$oid" : "53878332364101041fb2c141"} , "employeeId" : 5}

Select all documents with unique id from a collection

private static void selectAllRecordByRecordNumber(DBCollection collection) {

    BasicDBObject whereQuery = new BasicDBObject();

    whereQuery.put("employeeId", 5);

    DBCursor cursor = collection.find(whereQuery);

    while(cursor.hasNext()) {

        System.out.println(cursor.next());

    }

}

Output:

{ "_id" : { "$oid" : "538783623641e9b2da299fa7"} , "employeeId" : 5 , "employeeName" : "TestEmployee_5"}

Aspired to become an Mongo DB Training?

Explore the post to discover the know-hows on Mongo DB.

Document ids IN clause example

private static void in_Example(DBCollection collection) {

    BasicDBObject inQuery = new BasicDBObject();

    List<Integer> list = new ArrayList<Integer>();

    list.add(2);

    list.add(4);

    list.add(5);

    inQuery.put("employeeId", new BasicDBObject("$in", list));

    DBCursor cursor = collection.find(inQuery);

    while(cursor.hasNext()) {

        System.out.println(cursor.next());

    }

}

Output:

{ "_id" : { "$oid" : "5387838d3641024de174c795"} , "employeeId" : 2 , "employeeName" : "TestEmployee_2"}

{ "_id" : { "$oid" : "5387838d3641024de174c797"} , "employeeId" : 4 , "employeeName" : "TestEmployee_4"}

{ "_id" : { "$oid" : "5387838d3641024de174c798"} , "employeeId" : 5 , "employeeName" : "TestEmployee_5"}

Document ids less than or greater than clause example

private static void lessThan_GreaterThan_Example(DBCollection collection) {

    BasicDBObject getQuery = new BasicDBObject();

    getQuery.put("employeeId", new BasicDBObject("$gt", 2).append("$lt", 5));

    DBCursor cursor = collection.find(getQuery);

    while(cursor.hasNext()) {

        System.out.println(cursor.next());

    }

}

    

Output:

{ "_id" : { "$oid" : "538783b63641720cd34f98c8"} , "employeeId" : 3 , "employeeName" : "TestEmployee_3"}

{ "_id" : { "$oid" : "538783b63641720cd34f98c9"} , "employeeId" : 4 , "employeeName" : "TestEmployee_4"}

Document ids NOT IN clause example

private static void negation_Example(DBCollection collection) {

    BasicDBObject neQuery = new BasicDBObject();

    neQuery.put("employeeId", new BasicDBObject("$ne", 4));

    DBCursor cursor = collection.find(neQuery);

    while(cursor.hasNext()) {

        System.out.println(cursor.next());

    }

}

Output:

{ "_id" : { "$oid" : "538783db3641d3ca9d400510"} , "employeeId" : 1 , "employeeName" : "TestEmployee_1"}

{ "_id" : { "$oid" : "538783db3641d3ca9d400511"} , "employeeId" : 2 , "employeeName" : "TestEmployee_2"}

{ "_id" : { "$oid" : "538783db3641d3ca9d400512"} , "employeeId" : 3 , "employeeName" : "TestEmployee_3"}

{ "_id" : { "$oid" : "538783db3641d3ca9d400514"} , "employeeId" : 5 , "employeeName" : "TestEmployee_5"} //4 is missing

{ "_id" : { "$oid" : "538783db3641d3ca9d400515"} , "employeeId" : 6 , "employeeName" : "TestEmployee_6"}

{ "_id" : { "$oid" : "538783db3641d3ca9d400516"} , "employeeId" : 7 , "employeeName" : "TestEmployee_7"}

{ "_id" : { "$oid" : "538783db3641d3ca9d400517"} , "employeeId" : 8 , "employeeName" : "TestEmployee_8"}

{ "_id" : { "$oid" : "538783db3641d3ca9d400518"} , "employeeId" : 9 , "employeeName" : "TestEmployee_9"}

{ "_id" : { "$oid" : "538783db3641d3ca9d400519"} , "employeeId" : 10 , "employeeName" : "TestEmployee_10"}

Documents matching multiple fields example

private static void andLogicalComparison_Example(DBCollection collection) {

    BasicDBObject andQuery = new BasicDBObject();

    List<BasicDBObject> obj = new ArrayList<BasicDBObject>();

    obj.add(new BasicDBObject("employeeId", 2));

    obj.add(new BasicDBObject("employeeName", "TestEmployee_2"));

    andQuery.put("$and", obj);

 

    System.out.println(andQuery.toString());

 

    DBCursor cursor = collection.find(andQuery);

    while (cursor.hasNext()) {

        System.out.println(cursor.next());

    }

}

Output:

{ "$and" : [ { "employeeId" : 2} , { "employeeName" : "TestEmployee_2"}]}

{ "_id" : { "$oid" : "5387840336418a41167caaa4"} , "employeeId" : 2 , "employeeName" : "TestEmployee_2"}

Documents matching field value to some REGEX example

private static void regex_Example(DBCollection collection) {

    BasicDBObject regexQuery = new BasicDBObject();

    regexQuery.put("employeeName",

        new BasicDBObject("$regex", "TestEmployee_[3]")

        .append("$options", "i"));

 

    System.out.println(regexQuery.toString());

 

    DBCursor cursor = collection.find(regexQuery);

    while (cursor.hasNext()) {

        System.out.println(cursor.next());

    }

}

Output:

{ "employeeName" : { "$regex" : "TestEmployee_[3]" , "$options" : "i"}}

{ "_id" : { "$oid" : "538784213641917ce7068c57"} , "employeeId" : 3 , "employeeName" : "TestEmployee_3"}

Complete Code for all examples

package examples.mongodb.crud;

import java.net.UnknownHostException;

import java.util.ArrayList;

import java.util.List;

import com.mongodb.BasicDBObject;

import com.mongodb.DB;

import com.mongodb.DBCollection;

import com.mongodb.DBCursor;

import com.mongodb.DBObject;

import com.mongodb.MongoClient;

import com.mongodb.WriteResult;

public class MongoDBSelectExample {

    

    private static void setUpTestData(DBCollection collection){

        for (int i=1; i <= 10; i++) {

            collection.insert(new BasicDBObject().append("employeeId", i).append("employeeName", "TestEmployee_"+i));

        }

    }

    

    public static void main(String[] args) throws UnknownHostException

    {

        MongoClient mongo = new MongoClient("localhost", 27017);

        DB db = mongo.getDB("howtodoinjava");

        DBCollection collection = db.getCollection("users");

        

        //Delete All documents before running example again

        WriteResult result = collection.remove(new BasicDBObject());

        System.out.println(result.toString());

        

        //Set up test data

        setUpTestData(collection);

        

        //Select all document from a collection

        selectAllRecordsFromACollection(collection);

        

        //Select first document in collection

        selectFirstRecordInCollection(collection);

        

        //Select single document and single field based on record number

        selectSingleRecordAndFieldByRecordNumber(collection);

        

        //Select all documents where record number = n

        selectAllRecordByRecordNumber(collection);

        

        //In example

        in_Example(collection);

        

        //Less than OR greater than example

        lessThan_GreaterThan_Example(collection);

        

        //Select document where record number != n

        negation_Example(collection);

        

        //And logical comparison query example

        andLogicalComparison_Example(collection);

        

        //Select documents based on regex match LIKE example

        regex_Example(collection);

        

    }

    private static void selectFirstRecordInCollection(DBCollection collection) {

        DBObject dbObject = collection.findOne();

        System.out.println(dbObject);

    }

    private static void selectAllRecordsFromACollection(DBCollection collection) {

        DBCursor cursor = collection.find();

        while(cursor.hasNext()) {

            System.out.println(cursor.next());

        }

    }

    private static void selectSingleRecordAndFieldByRecordNumber(DBCollection collection) {

        BasicDBObject whereQuery = new BasicDBObject();

        whereQuery.put("employeeId", 5);

        BasicDBObject fields = new BasicDBObject();

        fields.put("employeeId", 1);

     

        DBCursor cursor = collection.find(whereQuery, fields);

        while (cursor.hasNext()) {

            System.out.println(cursor.next());

        }

    }

    private static void selectAllRecordByRecordNumber(DBCollection collection) {

        BasicDBObject whereQuery = new BasicDBObject();

        whereQuery.put("employeeId", 5);

        DBCursor cursor = collection.find(whereQuery);

        while(cursor.hasNext()) {

            System.out.println(cursor.next());

        }

    }

    private static void in_Example(DBCollection collection) {

        BasicDBObject inQuery = new BasicDBObject();

        List<Integer> list = new ArrayList<Integer>();

        list.add(2);

        list.add(4);

        list.add(5);

        inQuery.put("employeeId", new BasicDBObject("$in", list));

        DBCursor cursor = collection.find(inQuery);

        while(cursor.hasNext()) {

            System.out.println(cursor.next());

        }

    }

    private static void lessThan_GreaterThan_Example(

            DBCollection collection) {

        BasicDBObject gtQuery = new BasicDBObject();

        gtQuery.put("employeeId", new BasicDBObject("$gt", 2).append("$lt", 5));

        DBCursor cursor = collection.find(gtQuery);

        while(cursor.hasNext()) {

            System.out.println(cursor.next());

        }

    }

    private static void negation_Example(DBCollection collection) {

        BasicDBObject neQuery = new BasicDBObject();

        neQuery.put("employeeId", new BasicDBObject("$ne", 4));

        DBCursor cursor = collection.find(neQuery);

        while(cursor.hasNext()) {

            System.out.println(cursor.next());

        }

    }

    private static void andLogicalComparison_Example(DBCollection collection) {

        BasicDBObject andQuery = new BasicDBObject();

        List<BasicDBObject> obj = new ArrayList<BasicDBObject>();

        obj.add(new BasicDBObject("employeeId", 2));

        obj.add(new BasicDBObject("employeeName", "TestEmployee_2"));

        andQuery.put("$and", obj);

     

        System.out.println(andQuery.toString());

     

        DBCursor cursor = collection.find(andQuery);

        while (cursor.hasNext()) {

            System.out.println(cursor.next());

        }

    }

    private static void regex_Example(DBCollection collection) {

        BasicDBObject regexQuery = new BasicDBObject();

        regexQuery.put("employeeName",

            new BasicDBObject("$regex", "TestEmployee_[3]")

            .append("$options", "i"));

     

        System.out.println(regexQuery.toString());

     

        DBCursor cursor = collection.find(regexQuery);

        while (cursor.hasNext()) {

            System.out.println(cursor.next());

        }

    }

}

That’s all for different techniques to fetch data from MongoDB.

For indepth understanding click on