`

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;
    }

 

/***
 *因为有的查询条件不是在一个方法当中我就在这里全部组合在一起方便自己去查询使用以后
 */
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;
	}

 

 

 

 

0
0
分享到:
评论

相关推荐

    MongoDB查询练习题及答案

    MongoDB 是一种流行的 NoSQL 数据库,以文档型数据存储为主,支持丰富的查询表达能力。在本题中,我们将探讨 MongoDB 的查询操作,基于提供的 `user1` 和 `user2` 文档进行练习。 首先,让我们熟悉一下 `db.users....

    mongoDB-查询语法

    在 MongoDB 中,基本查询语法为 `db.collection.find()`,其中 `db` 代表当前数据库,`collection` 代表当前集合(或表)。例如,`db.users.find()` 将查找 `users` 集合中的所有记录。 条件查询 在 MongoDB 中,...

    MongoDB高级查询用法大全

    MongoDB 高级查询用法大全 MongoDB 作为一个 NoSQL 数据库,提供了多种高级查询方式,以下是 MongoDB 高级查询用法大全: 一、比较运算符 在 MongoDB 中,比较运算符用于比较字段的值,常用的比较运算符有: * $...

    MongoDB基本查询.pdf

    首先,MongoDB 中用于查询数据的核心命令是 `find`,正如题目中所提及的,其基本语法格式为 `db.collectionName.find()`。`db` 表示当前数据库,`collectionName` 是你想要查询的集合(即表)的名称。此命令会返回...

    mongodb 查询语法和实例

    MongoDB的基本查询使用`find()`方法,它可以接受一个JSON格式的对象作为参数,该对象定义了要匹配的文档条件。例如,找到所有`age`字段大于20的文档: ```javascript db.collection.find({ age: { $gt: 20 } }); ...

    MongoDB命令查询.txt

    根据提供的文件信息,“MongoDB命令查询.txt”,我们可以深入探讨与MongoDB相关的命令查询知识点,特别是聚焦于`db.tablename.findOne({})`这条命令的具体用法及其背后的原理。 ### MongoDB简介 MongoDB是一款开源...

    MongoDB查询性能验证及优化

    MongoDB使用查询解释器来解析和执行查询操作。通过`explain()`方法,我们可以获取查询的执行计划,包括扫描的文档数量、使用的索引、是否进行了排序等关键信息。例如,以下Java代码片段展示了如何在`MainTest.java`...

    MongoDB之查询详解

    本文将详细介绍MongoDB中的查询功能,包括基本的查询方法、使用`find`与`findOne`函数进行查询、以及如何利用`$条件查询`实现更加复杂的查询需求。 #### 二、MongoDB查询概述 MongoDB提供了多种查询文档的方法,...

    NoSQL之MongoDB查询

    在MongoDB中,find函数是查询的核心语法,格式为“db.集合名称.find({查询条件} [,{设置显示的字段}])”。find函数可以返回一个集合中文档的子集,子集合的范围从0个文档到整个文档。例如: * db.c.find() //返回...

    《MongoDB实战》第2版-第5章-Mongodb查询1

    本章主要内容包括理解查询一个电子商务数据模型、MongoDB查询语言的细节、查询选择器及其选项。 MongoDB查询语言不同于传统的SQL,而是采用类JSON的查询语法。书中通过实际的电子商务场景来解释查询操作,如商品、...

    MongoDB高级查询

    ### MongoDB高级查询知识点详解 #### 一、基本概念回顾 MongoDB 是一款非常流行的文档型数据库,它使用 JSON 格式的文档存储数据。对于开发者来说,掌握 MongoDB 的查询技巧至关重要,尤其是在处理复杂查询需求时。...

    一个简单的沙箱来测试和共享MongoDB查询.zip

    MongoDB是一种流行的开源文档数据库系统,它以JSON格式存储数据,并使用JavaScript作为查询语言,这使得它在处理灵活的数据结构时特别有用。本压缩包"一个简单的沙箱来测试和共享MongoDB查询.zip"显然是为了提供一个...

    Mongodb基本查询语句.docx

    MongoDB 的基本查询命令是 find 命令,find 命令的基本格式为 `db.表名.find(括号中为需要查询的条件)`。 查询表中所有数据 使用 find 命令可以查询表中的所有数据,例如 `db.law_alarm_log.find()`,这将查询 law...

    MongoDB查询分析.pdf

    在某些复杂的查询场景中,尽管MongoDB的查询优化器通常能做出正确的选择,但使用`hint()`可以进一步优化查询路径。例如,如果你知道查询应优先基于`gender`和`user_name`字段,可以使用以下代码: ```javascript db...

    C#,asp.net操作mongodb实例,新增,修改,查询,分页查询,删除,基类封装,打开直接运行

    本实例将深入探讨如何使用C#和ASP.NET进行MongoDB的基本操作,包括新增、修改、查询、分页查询、删除以及批量操作。 首先,我们要了解MongoDB .NET驱动程序。这是官方提供的SDK,允许C#开发者直接与MongoDB服务器...

    spring-data使用mongodbTemplate对MongoDB进行读写操作

    它是MongoDB操作的抽象层,封装了大量的CRUD(创建、读取、更新、删除)操作,以及更复杂的查询和聚合功能。在`App.java`中,你可以看到如何初始化和使用`MongoDBTemplate`。通常,你需要通过`ApplicationContext`...

    MongoDB查询操作符.pdf

    在MongoDB中,查询操作是获取数据的关键部分,本篇内容主要介绍了MongoDB的一些核心查询操作符和数据类型。 1. `$type` 操作符:此操作符允许你基于BSON(Binary JSON)数据类型来筛选文档中的字段。例如,如果你想...

Global site tag (gtag.js) - Google Analytics