java 操作mongodb查詢條件的常用設置

java操作mongodb進行查詢,常用篩選條件的設置如下:

條件列表:
BasicDBList condList = new BasicDBList();
臨時條件對象:
BasicDBObject cond = null;
DBCollection coll = db.getCollection("A");

1、$where
在某種應用場合,若要集合A查詢文檔且要滿足文檔中某些屬性運算結果,可以編寫一腳本函數用where進行設置,比如:
某集合中存放的用戶信息,包括姓名、年齡、手機號、地址等,要篩選出年齡大於20且小於等於40的用戶,我們可以這樣:
String ageStr = "function (){return parseFloat(this.age) > 20 && parseFloat(this.age) <= 40};";
cond = new BasicDBObject();
cond.put("$where",ageStr);

放入條件列表
condList.add(cond);

2、$in
接1實例中,要查詢年齡爲23、40、50的用戶信息,我們可以這樣:
創建一個臨時的條件列表對象,將條件值分別添加進去
BasicDBList values = new BasicDBList();
values.add(23);
values.add(40);
values.add(50);

cond = new BasicDBObject();
cond.put("age",new BasicDBObject("$in",values));

放入條件列表
condList.add(cond);

3、模糊匹配
接1實例中,要按照用戶的姓名進行模糊查詢,如:王,我們可以這樣做:

使用不區分大小寫的模糊查詢
3.1完全匹配
Pattern pattern = Pattern.compile("^王$", Pattern.CASE_INSENSITIVE);
3.2右匹配
Pattern pattern = Pattern.compile("^.*王$", Pattern.CASE_INSENSITIVE);
3.3左匹配
Pattern pattern = Pattern.compile("^王.*$", Pattern.CASE_INSENSITIVE);
3.4模糊匹配
Pattern pattern = Pattern.compile("^.*王.*$", Pattern.CASE_INSENSITIVE);

cond = new BasicDBObject();
cond.put("name",cond);

放入條件列表
condList.add(cond);

4、$gte/$lte/$gt/$lt
接1實例中,要篩選出年齡大於20且小於等於40的用戶,我們可以這樣:
cond = new BasicDBObject();
cond.append("age",new BasicDBObject("$gt",20));
cond.append("age",new BasicDBObject("$lte",40));

放入條件列表
condList.add(cond);

在日常的查詢中篩選的條件可能會有多個,而且多個條件之間都是且的關係,結合上例1、2、3、4中
將每種條件添加到條件列表中,我可以這樣:
BasicDBObject searchCond = new BasicDBObject();
searchCond.put("$and", condList);

然後查詢數據:
DBCursor ret = coll.find(searchCond);

以上爲常用的篩選條件的設置方法,其他的後續在更新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章