《java 中使用mongodb查詢find》要點:
本文介紹了java 中使用mongodb查詢find,希望對您有用。如果有疑問,可以聯系我們。
相關主題:非關系型數據庫
因為公司需求最近研究了下mongodb的查詢,但是因為對于這里面只進行了語法的使用,當初沒有進行內部數據的查看導致出現一些問題,所以大家在看一門新的知識的時候不要只注重語言本身也要注意內部的結構,,還有看到的東西要立馬去實踐不要一直盯著看,那樣會浪費時間,自己也掌握不了多少知識.
現在開始說下mongodb查詢的問題 用的是java語言.
mongodb的一般都是find方法查詢,因為查詢要用到很多個查詢條件組合,并且是精確查詢.就把查詢條件組合好之后放到list當中然后用and組合一起放到find當中查詢.
/**
* searchCond 試講在condList中的條件并列好之后放到find中
*/
BasicDBObject searchCond = new BasicDBObject();
BasicDBList condList = new BasicDBList();
BasicDBObject cond;
DBCollection Conllection;
condList= linkPayReturnContent(map);
if(condList.size()>0){
searchCond.put("$and", condList);
}
/**
*去掉查詢出來的主鍵id
*/
BasicDBObject idDB=new BasicDBObject();
idDB.put("_id", 0);
Conllection=mongoBgTemp.queryDB(“指定查詢的表名”);
DBCursor db=Conllection.find(searchCond,idDB);
db.addOption(Bytes.QUERYOPTION_NOTIMEOUT);
while(db.hasNext()){
resultMap=new HashMap();
DBObject dbObj= db.next();
list.add(dbObj.toMap());
}
db.close();
return list;
public DBCollection queryDB(String collectionName){
DBCollection userCollection = mongoTemplate.getCollection(collectionName);
return userCollection;
}
/**
* searchCond 試講在condList中的條件并列好之后放到find中
*/
BasicDBObject searchCond = new BasicDBObject();
BasicDBList condList = new BasicDBList();
BasicDBObject cond;
DBCollection Conllection;
condList= linkPayReturnContent(map);
if(condList.size()>0){
searchCond.put("$and", condList);
}
/**
*去掉查詢出來的主鍵id
*/
BasicDBObject idDB=new BasicDBObject();
idDB.put("_id", 0);
Conllection=mongoBgTemp.queryDB(“指定查詢的表名”);
DBCursor db=Conllection.find(searchCond,idDB);
db.addOption(Bytes.QUERYOPTION_NOTIMEOUT);
while(db.hasNext()){
resultMap=new HashMap();
DBObject dbObj= db.next();
list.add(dbObj.toMap());
}
db.close();
return list;
public DBCollection queryDB(String collectionName){
DBCollection userCollection = mongoTemplate.getCollection(collectionName);
return userCollection;
}
/***
*因為有的查詢條件不是在一個方法當中我就在這里全部組合在一起方便自己去查詢使用以后
*/
BasicDBList condList = new BasicDBList();
/**交易時間*/
if(map.containsKey("addTimeStart")){
BasicDBObject addTimeStartDB=new BasicDBObject();
String addTimeStart=StringUtils.trimToEmpty(map.get("addTimeStart").toString());
if(addTimeStart !=null && !addTimeStart.equals("")){
addTimeStartDB.put("transtime",new BasicDBObject("$gte",addTimeStart));
condList.add(addTimeStartDB);
}
}
if(map.containsKey("addTimeEnd")){
BasicDBObject addTimeEndDB=new BasicDBObject();
String addTimeEnd=StringUtils.trimToEmpty(map.get("addTimeEnd").toString());
if(addTimeEnd !=null && !addTimeEnd.equals("")){
addTimeEndDB.put("transtime",new BasicDBObject("$lte",addTimeEnd));
condList.add(addTimeEndDB);
}
}
if(map.containsKey("orderNo")){
BasicDBObject orderNoDB=new BasicDBObject();
String orderNo=StringUtils.trimToEmpty(map.get("orderNo").toString());
if(orderNo !=null && !orderNo.equals("")){
orderNoDB.put("order_no", orderNo);
condList.add(orderNoDB);
}
}
if(map.containsKey("cardNo")){
BasicDBObject cardNoDB=new BasicDBObject();
String cardNo=StringUtils.trimToEmpty(map.get("cardNo").toString());
if(cardNo !=null && !cardNo.equals("")){
cardNoDB.put("card_no", cardNo);
condList.add(cardNoDB);
}
}
if(map.containsKey("phone")){
BasicDBObject phoneDB=new BasicDBObject();
String phone=StringUtils.trimToEmpty(map.get("phone").toString());
if(phone !=null && !phone.equals("")){
phoneDB.put("phone", phone);
condList.add(phoneDB);
}
}
if(map.containsKey("totalFee")){
BasicDBObject totalFeeDB=new BasicDBObject();
String totalFee=StringUtils.trimToEmpty(map.get("totalFee").toString());
if(totalFee !=null && !totalFee.equals("")){
totalFeeDB.put("total_fee", totalFee);
condList.add(totalFeeDB);
}
}
if(map.containsKey("totalFee")){
BasicDBObject totalFeeDB=new BasicDBObject();
String totalFee=StringUtils.trimToEmpty(map.get("totalFee").toString());
if(totalFee !=null && !totalFee.equals("")){
totalFeeDB.put("total_fee", totalFee);
condList.add(totalFeeDB);
}
}
if(map.containsKey("memberId")){
BasicDBObject memberIdDB=new BasicDBObject();
String memberId=StringUtils.trimToEmpty(map.get("memberId").toString());
if(memberId !=null && !memberId.equals("")){
memberIdDB.put("member_id", memberId);
condList.add(memberIdDB);
}
}
if(map.containsKey("content")){
//這個是利用的模糊查詢現在那個用的是正則表達式
BasicDBObject contentDB=new BasicDBObject();
String content=StringUtils.trimToEmpty(map.get("content").toString());
if(content !=null && !content.equals("")){
Pattern queryPattern = Pattern.compile(content, Pattern.CASE_INSENSITIVE);
contentDB.put("content",queryPattern );
condList.add(contentDB);
}
}
if(map.containsKey("borrowMoney")){
//在這里也是提醒下自己在查詢的時候要注意內容的區分,并且注意字段類型
BasicDBObject borrowMoneyDB=new BasicDBObject();
String borrowMoney=StringUtils.trimToEmpty(map.get("borrowMoney").toString());
if(borrowMoney !=null && !borrowMoney.equals("")){
borrowMoneyDB.put("applyamt",ObjectUtils.toString(new BigDecimal (borrowMoney).setScale(2,BigDecimal.ROUND_DOWN)));
condList.add(borrowMoneyDB);
}
}
return condList;
}
維易PHP培訓學院每天發布《java 中使用mongodb查詢find》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。