java mongodb 基础系列---查询,排序,limit,$in,$or,输出为list,创建索引,$ne 非操作
2013-12-18 16:58
946 查看
官方api教程:http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/#getting-started-with-java-driver
补充:1.关于查询:如果想要查 "a=30或a=50"这样的条件怎么办?
可以使用$in进行查询:
2.关于查询:如果想要查 "a>30或a<10"这样的条件怎么办?
[b]可以使用$or进行查询:[/b]
那么,如果想要查 "a>30或b<10"这样的条件怎么办?
只需要将上面代码改为如下,即可:
3.如果是多值and查询只用new BasicDBobject(),然后再put即可,如下所示:
4.创建索引
5.查询非操作
查询level为INFO,但status不为"已完成"的所结果数
另,可参见:
1.http://blog.csdn.net/llhhyy1989/article/details/12571111
2./article/1456210.html
3.http://docs.mongodb.org/manual/reference/operator/query/ 查询命令,$ne,$in
package com.infomorrow.webroot; import java.util.List; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.MongoClient; public class test_mongodb { public static void main(String args[]) throws Exception { MongoClient mongoClient = new MongoClient( "127.0.0.1" , 27017 );//建立连接 DB get_db_credit = mongoClient.getDB("credit_2");//数据库名 DBCollection collection = get_db_credit.getCollection("report");//集合名,对应mysql中的表名 BasicDBObject filter_dbobject = new BasicDBObject(); //建立查询条件,如果还有其他条件,类似的写即可 // 如:version=3,filter_dbobject.put("version", 3),mongod区分String 和 Integer类型,所以要小心"3"!=3 filter_dbobject.put("user_id", "10065716153075"); //下面执行查询,设置limit,只要10条数据,排序(类mysql orderby) 再建一个BasicDBObject即可,-1表示倒序 DBCursor cursor = collection.find(filter_dbobject).limit(10).sort(new BasicDBObject("create_time",-1)); //把结果集输出成list类型 List<DBObject> list = cursor.toArray(); System.out.println(list.size());//list的长度 System.err.println(cursor.count());//计算结果的数量,类似于(mysql count()函数),不受limit的影响 //遍历结果集 while(cursor.hasNext()) { System.out.println(cursor.next()); } } }
补充:1.关于查询:如果想要查 "a=30或a=50"这样的条件怎么办?
可以使用$in进行查询:
@Test public void testIn(){ //a=30或者a=50 DBObject queryCondition = new BasicDBObject(); BasicDBList values = new BasicDBList(); values.add(30); values.add(50); queryCondition.put("a", new BasicDBObject("$in", values)); DBCursor dbCursor = coll.find(queryCondition); }
2.关于查询:如果想要查 "a>30或a<10"这样的条件怎么办?
[b]可以使用$or进行查询:[/b]
@Test public void testOrSingleField(){ DBObject queryCondition = new BasicDBObject(); //查询a<10 OR a>30 BasicDBList values = new BasicDBList(); values.add(new BasicDBObject("a", new BasicDBObject("$gt", 30))); values.add(new BasicDBObject("a", new BasicDBObject("$lt", 10))); queryCondition.put("$or", values); DBCursor dbCursor = coll.find(queryCondition); }
那么,如果想要查 "a>30或b<10"这样的条件怎么办?
只需要将上面代码改为如下,即可:
values.add(new BasicDBObject("b", new BasicDBObject("$lt", 10)));
3.如果是多值and查询只用new BasicDBobject(),然后再put即可,如下所示:
BasicDBObject basic=new BasicDBObject(); basic.put("name","amosli"); basic.put("hobby","code"); .... collection.find(basic).toArray();//将值转为list
4.创建索引
// 创建索引 BasicDBObject obj = new BasicDBObject(); obj.put("create_time", -1); collection.ensureIndex(obj); // 查询索引,遍历索引 List<DBObject> list = collection.getIndexInfo(); for (DBObject o : list) { System.out.println("\t" + o); }
5.查询非操作
查询level为INFO,但status不为"已完成"的所结果数
//not equal 非操作 BasicDBObject basicDBObject = new BasicDBObject("level","INFO"); System.out.println(collection.count(basicDBObject.append("status", new BasicDBObject("$ne", "已完成"))));
另,可参见:
1.http://blog.csdn.net/llhhyy1989/article/details/12571111
2./article/1456210.html
3.http://docs.mongodb.org/manual/reference/operator/query/ 查询命令,$ne,$in
相关文章推荐
- java操作mongodb基础(查询 排序 输出list)
- java操作mongodb基础(查询 排序 输出list)
- java操作mongodb基础(查询 排序 输出list)
- J:\java资料全套\基础+就业\Spring框架2016版视频\day03视频\08-jdbcTemplate实现crud操作(查询list集合).java
- Mongodb从0到1系列四: Limit与Skip方法、排序、索引
- mongodb基础系列——java操作mongodb实现图片文件功能
- Mongodb在查询某个字段是否存在,执行删除字段,python中排序和创建索引
- mongodb基础系列——java操作mongodb实现CURD
- windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)
- mongodb基础系列——java操作mongodb实现图片文件功能
- mongodb基础系列——java操作mongodb实现图片文件功能
- mongodb 索引创建,查询,删除操作
- 【原创】StreamInsight查询系列(七)——基本查询操作之基础排序
- mongodb基础系列——java操作mongodb实现CURD
- Java基础知识系列——文件操作
- lucene5学习 - 索引基本操作(创建,查询,更新,删除,分页)
- (13)数组操作:遍历、输出最大值、冒泡排序、选择排序,java已有的排序方法、折半查找
- MongoDB系列之三:java操作MongoDB
- Java操作mongodb的模糊查询和精确查询
- MongDB基础学习(六)—— 【MongoDB for Java】Java操作MongoDB