初始化部分
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 : <, &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
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