導航:首頁 > 編程語言 > javamongodb多條件

javamongodb多條件

發布時間:2022-08-23 23:15:12

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完全匹配

㈡ mongoDB在java中怎麼根據內嵌文檔條件查詢

建立SimpleTest.java,完成簡單的mongoDB資料庫操作 Mongo mongo = new Mongo(); 這樣就創建了一個MongoDB的資料庫連接對象,它默認連接到當前機器的localhost地址,埠是27017。 DB db = mongo.getDB(「test」); 這樣就獲得了一個test的資料庫,如果mongoDB中沒有創建這個資料庫也是可以正常運行的。如果你讀過上一篇文章就知道,mongoDB可以在沒有創建這個資料庫的情況下,完成數據的添加操作。當添加的時候,沒有這個庫,mongoDB會自動創建當前資料庫。 得到了db,下一步我們要獲取一個「聚集集合DBCollection」,通過db對象的getCollection方法來完成。 DBCollection users = db.getCollection("users"); 這樣就獲得了一個DBCollection,它相當於我們資料庫的「表」。 查詢所有數據 DBCursor cur = users.find(); while (cur.hasNext()) { System.out.println(cur.next()); } 完整源碼 package com.hoo.test; import java.net.UnknownHostException; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; import com.mongodb.MongoException; impor... 建立SimpleTest.java,完成簡單的mongoDB資料庫操作

Mongo mongo = new Mongo();

這樣就創建了一個MongoDB的資料庫連接對象,它默認連接到當前機器的localhost地址,埠是27017。

DB db = mongo.getDB(「test」);

這樣就獲得了一個test的資料庫,如果mongoDB中沒有創建這個資料庫也是可以正常運行的。如果你讀過上一篇文章就知道,mongoDB可以在沒有創建這個資料庫的情況下,完成數據的添加操作。當添加的時候,沒有這個庫,mongoDB會自動創建當前資料庫。

得到了db,下一步我們要獲取一個「聚集集合DBCollection」,通過db對象的getCollection方法來完成。

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

這樣就獲得了一個DBCollection,它相當於我們資料庫的「表」。

查詢所有數據

DBCursor cur = users.find();

while (cur.hasNext()) {

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

}

完整源碼
package com.hoo.test;

import java.net.UnknownHostException;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;

/**
* <b>function:</b>MongoDB 簡單示例
* @author hoojo
* @createDate 2011-5-24 下午02:42:29
* @file SimpleTest.java
* @package com.hoo.test
* @project MongoDB
* @blog http
* @email [email protected]
* @version 1.0
*/
public class SimpleTest {

public static void main(String[] args) throws UnknownHostException, MongoException {
Mongo mg = new Mongo();
//查詢所有的Database
for (String name : mg.getDatabaseNames()) {
System.out.println("dbName: " + name);
}

DB db = mg.getDB("test");
//查詢所有的聚集集合
for (String name : db.getCollectionNames()) {
System.out.println("collectionName: " + name);
}

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

//查詢所有的數據
DBCursor cur = users.find();
while (cur.hasNext()) {
System.out.println(cur.next());
}
System.out.println(cur.count());
System.out.println(cur.getCursorId());
System.out.println(JSON.serialize(cur));
}

㈢ mongoTemplate怎麼寫多條件查詢mongoDB中的數據

Criteria criteria = new Criteria().andOperator(
Criteria.where("createDate").gte(dateFormat.parseObject("2014-10-01 00:00:00")),
Criteria.where("createDate").lt(dateFormat.parseObject("2014-11-01 00:00:00"))
);
mongoTemplate.group(criteria, "collectionName", new GroupBy("GroupField"), entityClass);

<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.12.3</version>
</dependency>

㈣ java mongodb多條件分組

//首先利$match篩選出where條件此處看你的查詢范圍條件了
BasicDBObject[]array={newBasicDBObject("startTimeLong",newBasicDBObject("$gte",beginTime)),
newBasicDBObject("startTimeLong",newBasicDBObject("$lt",endTime))};

BasicDBObjectcond=newBasicDBObject();
cond.put("$and",array);
DBObjectmatch=newBasicDBObject("$match",cond);

//利用$project拼裝group需要的數據,包含name列、age列
DBObjectfields=newBasicDBObject("name",1);
fields.put("age",1);

DBObjectproject=newBasicDBObject("$project",fields);

//利用$group進行分組
DBObject_group=newBasicDBObject("name","$name");
_group.put("age","$age");
DBObjectgroupFields=newBasicDBObject("_id",_group);
//總數
groupFields.put("count",newBasicDBObject("$sum",1));
DBObjectgroup=newBasicDBObject("$group",groupFields);
AggregationOutputoutput=MongodbUtil.getLogInfoCollection().aggregate(match,project,group);

㈤ 高手幫幫忙,我剛接觸mongodb,怎麼用java對mongodb資料庫進行多條件查詢,先謝謝了

package maven.demo.test;

import java.util.ArrayList;
import java.util.List;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.QueryOperators;

public class MongoDB {
private static void print(String str){
System.out.println(str);
}
public static void main(String[] args) {
try {
//創建連接
Mongo m=new Mongo("127.0.0.1", 27017);
//得到資料庫
DB db=m.getDB("test");
//得到所有資料庫
// List<String> colls=m.getDatabaseNames();
// for(String str:colls){
// System.out.println(str);
// }

// //得到所有的集合(表)
// for(String collection:db.getCollectionNames()){
// System.out.println(collection);
// }

//刪除一個資料庫
//m.dropDatabase("sun");

//得到sun表
DBCollection coll=db.getCollection("things");

//查看一個表的索引
// for(DBObject index:coll.getIndexInfo()){
// System.out.println(index);
// }

// DBObject myDoc=coll.findOne();
// System.out.println(myDoc);

//添加
// BasicDBObject doc=new BasicDBObject();
// doc.put("name", "sunshan");
// doc.put("sex", "男");
// doc.put("age", 22);
//coll.insert(doc);

//刪除
//coll.remove(doc);

// BasicDBObject doc1=new BasicDBObject();
// doc1.put("i", 0);
// doc1.put("j", "foo");
// BasicDBObject doc2=new BasicDBObject();
// doc2.put("hello", "world");
// doc1.put("doc2", doc2);
// coll.insert(doc1);

//修改
// BasicDBObject doc3=new BasicDBObject();
// doc3.put("x", 6);
// BasicDBObject doc4=new BasicDBObject();
// doc4.put("x", 1);
// coll.update(doc3, doc4,true,false);
//如果資料庫不存在就添加 |多條修改 false只修改第一天,true如果有多條就不修改

//條件查詢
//System.out.println(coll.find(doc4));

//coll.findAndRemove(doc4);

// //批量插入
// List<DBObject> datas=new ArrayList<DBObject>();
// for(int i=0;i<10;i++){
// BasicDBObject bd=new BasicDBObject();
// bd.put("name", "data");
// bd.append("age", i);
// datas.add(bd);
// }
// coll.insert(datas);

//添加
// BasicDBObjectBuilder documentBuilder = BasicDBObjectBuilder.start();
// documentBuilder.add("database", "mkyongDB");
// documentBuilder.add("table", "hosting");
// BasicDBObjectBuilder documentBuilderDetail = BasicDBObjectBuilder.start();
// documentBuilderDetail.add("records", "99");
// documentBuilderDetail.add("index", "vps_index1");
// documentBuilderDetail.add("active", "true");
// documentBuilder.add("detail", documentBuilderDetail.get());
// coll.insert(documentBuilder.get());

//添加
// Map<Object,Object> map=new HashMap<Object,Object>();
// map.put("a", 1);
// map.put("b", "b");
// coll.insert(new BasicDBObject(map));

//添加
// String json ="{'1' : '1','2' : '2',"+"'11' : {'1' : 1, '2' : '2', '3' : '3'}}";
// DBObject dbobject=(DBObject)JSON.parse(json);
// coll.insert(dbobject);

//更新
// BasicDBObject bdo=new BasicDBObject();
// bdo.put("x", 11);
// coll.update(new BasicDBObject().append("x", 0), bdo);

//更新
// BasicDBObject bdo=new BasicDBObject().append("$inc", new BasicDBObject().append("x", 12));
// coll.update(new BasicDBObject().append("x", 11), bdo);

//更新
//如果不使用$set 直接是 age則所有的都會更新
//根據age為9條件把name:data修改為 name:sun
// BasicDBObject bdo=new BasicDBObject().append("$set", new BasicDBObject().append("name", "sunshan"));
// coll.update(new BasicDBObject().append("age", 9), bdo);

//更新
//根據name為data條件把age:批量修改為 age:age
// BasicDBObject bdo=new BasicDBObject().append("$set", new BasicDBObject().append("age", "age"));
// coll.update(new BasicDBObject().append("name", "data"), bdo,false, true);

//查詢age=1
// print("find:"+coll.find(new BasicDBObject("age", 1)).toArray());
//查詢age<=1
// print("find: "+coll.find(new BasicDBObject("age", new BasicDBObject("$lte", 1))).toArray());
//查詢age>=1
// print("fint: "+coll.find(new BasicDBObject("age", new BasicDBObject("$gte", 1))).toArray());
//查詢age!=1
// print("fint: "+coll.find(new BasicDBObject("age", new BasicDBObject("$ne", 1))).toArray());
//查詢age=1,2,3
// print("fint: "+coll.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.IN ,new int[]{1,2,3}))).toArray());
//查詢age!=1,2,3
// print("find: "+coll.find(new BasicDBObject("age" ,new BasicDBObject(QueryOperators.NIN ,new int[]{1,2,3}))).toArray());

// print("find: "+coll.find(new BasicDBObject("age" ,new BasicDBObject(QueryOperators.EXISTS ,true))).toArray());
//查詢age屬性
// print("find: "+coll.find(null ,new BasicDBObject("age" ,true)).toArray());

// List<DBObject> list=coll.find().toArray();
// for(Object obj:list){
// System.out.println(obj);
// }

//true查詢出來存在的 /false 查詢出來不存在的
//print(""+coll.find(new BasicDBObject("y",new BasicDBObject(QueryOperators.EXISTS,false))).toArray());

// DBObject dbc=new BasicDBObject();
// dbc.put("name", 1111);
// List<DBObject> list=new ArrayList<DBObject>();
// list.add(dbc);
// System.out.println(coll.insert(list).getN());

// //查詢部分數據塊
// DBCursor cursor=coll.find().skip(1);
// while(cursor.hasNext()){
// System.out.println(cursor.next());
// }

// DBCursor cur=coll.find(); //DBCursor cur=coll.find().limit(2);
// while(cur.hasNext()){
// System.out.println(cur.next());
// }
//System.out.println(cur.getCursorId()+" "+cur.count()+" "+JSON.serialize(cur));

//條件查詢
BasicDBObject doc5=new BasicDBObject();
doc5.put("$gt", 1);
doc5.put("$lt", 3);
print("find 21<y<23:"+coll.find(new BasicDBObject("y", doc5)).toArray());
// BasicDBObject doc5=new BasicDBObject();
// doc5.put("$gt", 1);
// doc5.put("$lt", 3);
// BasicDBObject doc6=new BasicDBObject();
// doc6.put("x", doc5);
// System.out.println(coll.find(doc6));

} catch (Exception e) {
e.printStackTrace();
}
}

}

㈥ 求教mongodb大神,在java中怎麼以時間為條件查詢

java操作mongodb進行查詢,常用篩選條件的設置如下:條件列表:BasicDBListcondList=newBasicDBList();臨時條件對象:BasicDBObjectcond=null;DBCollectioncoll=db.getCollection("A");1、$where在某種應用場合,若要集合A查詢文檔且要滿足文檔中某些屬性運算結果,可以編寫一腳本函數用where進行設置,比如:某集合中存放的用戶信息,包括姓名、年齡、手機號、地址等,要篩選出年齡大於20且小於等於40的用戶,我們可以這樣:StringageStr="function(){returnparseFloat(this.age)>20&&parseFloat(this.age)<=40};";cond=newBasicDBObject();cond.put("$where",ageStr);放入條件列表condList.add(cond);2、$in接1實例中,要查詢年齡為23、40、50的用戶信息,我們可以這樣:創建一個臨時的條件列表對象,將條件值分別添加進去BasicDBListvalues=newBasicDBList();values.add(23);values.add(40);values.add(50);cond=newBasicDBObject();cond.put("age",newBasicDBObject("$in",values));放入條件列表condList.add(cond);3、模糊匹配接1實例中,要按照用戶的姓名進行模糊查詢,如:王,我們可以這樣做:使用不區分大小寫的模糊查詢3.1完全匹配Patternpattern=Pattern.compile("^王$",Pattern.CASE_INSENSITIVE);3.2右匹配Patternpattern=Pattern.compile("^.*王$",Pattern.CASE_INSENSITIVE);3.3左匹配Patternpattern=Pattern.compile("^王.*$",Pattern.CASE_INSENSITIVE);3.4模糊匹配Patternpattern=Pattern.compile("^.*王.*$",Pattern.CASE_INSENSITIVE);cond=newBasicDBObject();cond.put("name",cond);放入條件列表condList.add(cond);4、$gte/$lte/$gt/$lt接1實例中,要篩選出年齡大於20且小於等於40的用戶,我們可以這樣:cond=newBasicDBObject();cond.append("age",newBasicDBObject("$gt",20));cond.append("age",newBasicDBObject("$lte",40));放入條件列表condList.add(cond);在日常的查詢中篩選的條件可能會有多個,而且多個條件之間都是且的關系,結合上例1、2、3、4中將每種條件添加到條件列表中,我可以這樣:BasicDBObjectsearchCond=newBasicDBObject();searchCond.put("$and",condList);然後查詢數據:DBCursorret=coll.find(searchCond);

閱讀全文

與javamongodb多條件相關的資料

熱點內容
程序員簡易表白代碼 瀏覽:163
什麼是無線加密狗 瀏覽:60
國家反詐中心app為什麼會彈出 瀏覽:64
cad壓縮圖列印 瀏覽:100
網頁打開速度與伺服器有什麼關系 瀏覽:859
android開發技術文檔 瀏覽:62
32單片機寫程序 瀏覽:43
三星雙清無命令 瀏覽:835
漢壽小程序源碼 瀏覽:340
易助erp雲伺服器 瀏覽:530
修改本地賬戶管理員文件夾 瀏覽:416
python爬蟲工程師招聘 瀏覽:283
小鵬p7聽音樂哪個app好 瀏覽:354
linux下的防火牆 瀏覽:954
凌達壓縮機美芝壓縮機 瀏覽:350
php後面代碼不執行 瀏覽:236
微我手機怎樣設置應用加密 瀏覽:202
條件加密 瀏覽:628
androidstudio設置中文 瀏覽:641
汽車換壓縮機能提升製冷 瀏覽:629