天天看點

第四章 查詢語句:MongoDb VS MySql 4.1

初始化部分

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("SELECT * FROM schedule WHERE rsc='ATM033101'");

    startTime = System.currentTimeMillis();  

    query.put("rsc","ATM033101");

order by startDate asc,startTime asc limit 2,10");

sort = new BasicDBObject();

    sort.put("startDate", 1);

sort.put("startTime", 1);

    cur = coll.find().sort(sort).limit(2).skip(10); 

    showAllDataFromCursor(cur);

進階查詢

http://www.mongodb.org/display/DOCS/Advanced+Queries

Introduction

Retrieving a Subset of Fields

$slice operator

Conditional Operators : <, <=, >, >=

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

WHERE rsc like 'ATM%'and length(rsc)=9");

    query.put("rsc",Pattern.compile("ATM[A-Z0-9]{6}", Pattern.CASE_INSENSITIVE));

這裡可以了解為:rsc like 'ATM%'and length(rsc)=9

? 選擇固定字段

    System.out.println("SELECT rsc,startDate,startTime, competitionStatus FROM schedule WHERE competitionStatus=1 order by startDate asc,startTime asc limit 10");

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

本文轉自jooben 51CTO部落格,原文連結:http://blog.51cto.com/jooben/350747