第四章 查询语句:MongoDb VS MySql 4.1

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 MongoDB,通用型 2核4GB
简介:
初始化部分
System.out.println("基础初始化部分开始");
    Mongo m = new Mongo("localhost", 27017);
    // 选择数据库,如果没有这个数据库的话,会自动建立
    DB db = m.getDB("ms_basic");
    // 建立一个集合,和数据库一样,如果没有,会自动建立
    DBCollection coll = db.getCollection("leeCollection");
    DBCursor cur = null;
    long startTime = 0;
    BasicDBObject query = null;
    BasicDBObject field = null;
    BasicDBObject sort = null;
    List<Object> inList = null;
System.out.println("基础初始化部分完毕");
,,,,
   public   static   void  showAllDataFromCursor(DBCursor cur) {
     while  (cur.hasNext()) {
       System. out .println(cur.next());
     }
}
普通查询
System.out.println("-----------华丽分隔线---------------");
System. out .println( "
SELECT * FROM schedule
WHERE startDate='2010-11-18' and disciplineName='田径'
and phaseName='决赛'" );
    startTime = System. currentTimeMillis ();
    query =  new  BasicDBObject();
    query.put( "startDate" , "2010-11-18" );
    query. put ( "disciplineName" "田径" );
    query.put( "phaseName" , "决赛" );
    cur = coll.find(query);  
    System. out .println( "查询获得的长度" +cur.count());
    System. out .println( "查询耗时:" +(System. currentTimeMillis ()-startTime)+ "毫秒." );
showAllDataFromCursor (cur);
System. out .println( "-----------华丽分隔线---------------" );
    System. out .println( "SELECT * FROM schedule WHERE rsc='ATM033101'" );
    startTime = System. currentTimeMillis ();  
    query =  new  BasicDBObject();
    query.put( "rsc" , "ATM033101" );
    cur = coll.find(query);  
    System. out .println( "查询获得的长度" +cur.count());
    System. out .println( "查询耗时:" +(System. currentTimeMillis ()-startTime)+ "毫秒." );
showAllDataFromCursor (cur);
System. out .println( "-----------华丽分隔线---------------" );
System . out .println( "
SELECT * FROM schedule
order by startDate asc,startTime asc limit 2,10" );
sort =  new  BasicDBObject();
    sort.put( "startDate" , 1);
sort.put( "startTime" , 1);
    startTime = System. currentTimeMillis ();  
    cur = coll.find().sort(sort).limit(2).skip(10); 
    System. out .println( "查询获得的长度" +cur.count());
    System. out .println( "查询耗时:" +(System. currentTimeMillis ()-startTime)+ "毫秒." );
     showAllDataFromCursor (cur);
高级查询
http://www.mongodb.org/display/DOCS/Advanced+Queries
Introduction
Retrieving a Subset of Fields
$slice operator
Conditional Operators : <, &lt;=, >, &gt;=
Conditional Operator : $ne
Conditional Operator : $in
Conditional Operator : $nin
Conditional Operator : $mod
Conditional Operator: $all
Conditional Operator : $size
Conditional Operator: $exists
Conditional Operator: $type
$or
Regular Expressions
Value in an Array
Conditional Operator: $elemMatch
Value in an Embedded Object
Meta operator: $not
Javascript Expressions and $where
sort()
limit()
skip()
snapshot()
count()
group()
Special operators
See Also 
这里列举部分示例:
Regular Expressions
System. out .println( "-----------华丽分隔线---------------" );
System. out .println( "
SELECT * FROM schedule
WHERE rsc like 'ATM%'and length(rsc)=9" );
    startTime = System. currentTimeMillis ();  
    query =  new  BasicDBObject();
    query.put( "rsc" ,Pattern. compile ( "ATM[A-Z0-9]{6}" , Pattern. CASE_INSENSITIVE ));
    cur = coll.find(query);  
    System. out .println( "查询获得的长度" +cur.count());
    System. out .println( "查询耗时:" +(System. currentTimeMillis ()-startTime)+ "毫秒." );
showAllDataFromCursor (cur);
这里可以理解为: rsc like 'ATM%'and length(rsc)=9
选择固定字段
System. out .println( "-----------华丽分隔线---------------" );
    System. out .println( "SELECT rsc,startDate,startTime, competitionStatus FROM schedule WHERE competitionStatus =1  order by startDate asc,startTime asc limit 10" );
    startTime = System. currentTimeMillis ();  
    query =  new  BasicDBObject();
    query.put( "competitionStatus" , 1 ); 
    field =  new  BasicDBObject();
     field.put( "rsc" , true );
    field.put( "startDate" , true );
    field.put( "startTime" , true );
    field.put( "competitionStatus" , true );
    cur = coll.find(query,field).sort(sort).limit(10);  
    System. out .println( "查询获得的长度" +cur.count());
    System. out .println( "查询耗时:" +(System. currentTimeMillis ()-startTime)+ "毫秒." );
showAllDataFromCursor (cur);
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
16天前
|
关系型数据库 MySQL 数据库
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
|
17天前
|
SQL 关系型数据库 MySQL
【MySQL】11. 复合查询(重点)
【MySQL】11. 复合查询(重点)
19 0
|
18天前
|
SQL 关系型数据库 MySQL
mysql一条sql查询出多个统计结果
mysql一条sql查询出多个统计结果
13 0
|
16天前
|
缓存 关系型数据库 MySQL
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
|
16天前
|
缓存 关系型数据库 MySQL
MySQL 查询优化:提速查询效率的13大秘籍(索引设计、查询优化、缓存策略、子查询优化以及定期表分析和优化)(中)
MySQL 查询优化:提速查询效率的13大秘籍(索引设计、查询优化、缓存策略、子查询优化以及定期表分析和优化)(中)
|
2天前
|
关系型数据库 MySQL Shell
MySQL 查询
MySQL 查询
|
4天前
|
SQL 关系型数据库 MySQL
DQL语言之基础查询(mysql)
DQL语言之基础查询(mysql)
|
4天前
|
SQL 关系型数据库 MySQL
DQL语言之连接查询(mysql)
DQL语言之连接查询(mysql)
|
4天前
|
关系型数据库 MySQL
MySQL全局库表查询准确定位字段
information_schema.COLUMNS 详细信息查询
183 4
|
9天前
|
关系型数据库 MySQL
Mysql查询语句的执行顺序
Mysql查询语句的执行顺序
10 0