java MongoDB查詢(一)簡單查詢


前言

        MongoDB的java驅動提供了查詢的功能,查詢條件也是bson對象,這篇就看下怎么進行簡單的數據查詢

1、數據結構

        集合:firstCollection

        數據內容:

        { "_id" : ObjectId("55adba52fa1f3cf038c2aea6"), "name" : "user0", "age" : 22, "sex" : 0 }

        { "_id" : ObjectId("55adba52fa1f3cf038c2aea7"), "name" : "user1", "age" : 23, "sex" : 1 }

        { "_id" : ObjectId("55adba52fa1f3cf038c2aea8"), "name" : "user2", "age" : 24, "sex" : 0 }

        { "_id" : ObjectId("55adba52fa1f3cf038c2aea9"), "name" : "user3", "age" : 25, "sex" : 1 }

        { "_id" : ObjectId("55adba52fa1f3cf038c2aeaa"), "name" : "user4", "age" : 26, "sex" : 0 }

        { "_id" : ObjectId("55adba52fa1f3cf038c2aeab"), "name" : "user5", "age" : 27, "sex" : 1 }

2、連接數據庫,拿到集合firstCollection

 

        MongoClient mClient = new MongoClient("10.211.55.8");

        DB db = mClient.getDB("test");

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

 

3、查詢name為user1的對象

        查詢條件Json內容:

        {"name": "user1"}

 

        查詢條件Java內容:

        BasicDBObject queryObject = new BasicDBObject("name","user1");

 

        執行過程:

        DBObject obj = collection.findOne(queryObject);

 

        這樣就拿到了name為user1的對象了

4、查詢name包含user的對象

        這樣模糊查詢,也就類似於like查詢是通過正則表達式來完成的

        查詢條件Json內容:

        {“name”:/user/}

 

        查詢條件Java內容:

        Pattern queryPattern = Pattern.compile("user", Pattern.CASE_INSENSITIVE);

        BasicDBObject queryObject = new BasicDBObject("name",queryPattern);

 

        執行過程:

        Pattern queryPattern = Pattern.compile("user", Pattern.CASE_INSENSITIVE);

        BasicDBObject queryObject = new BasicDBObject("name",queryPattern);

        Cursor cursor = collection.find(queryObject);

        while(cursor.hasNext()){

                DBObject obj = cursor.next();

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

        }        

5、查詢年齡大於24的對象

        查詢條件Json內容:

        {"age":{"$gt":24}}

        

        查詢條件Java內容:

        兩個Bson對象嵌套

        BasicDBObject gt = new BasicDBObject("$gt",24);

        BasicDBObject queryObject = new BasicDBObject("age",gt);        

        

        執行過程:

        BasicDBObject gt = new BasicDBObject("$gt",24);

        BasicDBObject queryObject = new BasicDBObject("age",gt);

        Cursor cursor = collection.find(queryObject);

        while(cursor.hasNext()){

                DBObject obj = cursor.next();

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

        }

 

        備注:

        $gt:>

        $gte:>=

        $eq:        =

        $ne:        !=

        $lt:        <

        $lte:        <=

        $in:        in(后面的值為bson對象數組)

        $nin:        not in(后面的值為bson對象數組)

 

        這些操作符的用法和$gt類似,不在贅述

總結

        通過這篇文章就可以對MongoDB進行簡單的查詢了,但是在具體業務中只有簡單查詢是不現實的,會有更多的與或關系,這戲內容將在下次文章中敘述。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM