MongoDB 簡介2

 7 加入多種文檔 
爲了做更多有趣的查詢試驗,讓我們向集合中加入多種文檔類型,象: 
{ 
"i" : value 
} 
可以通過循環來實現 

for(int i = 0; i < 100; i++){ 
coll.insert(new BasicDBObject().append("i", i)); 
} 

注意我們可以在一個集合中插入不同類型的文檔,這就是我們所說的“模式自由”(schema-free)。 

8 統計文檔數量 
使用getCount()方法 

System.out.println(coll.getCount()); 

9 使用光標(cursor)來獲取全部文檔 
爲了獲取集合中的所有文檔,我們可以使用find()方法。這個方法返回一上DBCursor對象,來允許我們將符合查詢條件的文檔迭代 

出來。 

DBCursor cur = coll.find(); 
while(cur.hasNext()){ 
System.out.println(cur.next()); 
} 

10 在查詢中獲取單一文檔 
我們可以創建一個查詢,並傳遞給find()方法來獲取集合中所有文檔的一個子集。例如,我們想要查詢域名爲"i",並且值爲71的文檔: 

BasicDBObject query = new BasicDBObject(); 
query.put("i", 71); 
cur = coll.find(query); 
while(cur.hasNext()){ 
System.out.println(cur.next()); 
} 

11 使用條件查詢獲取集合 
例如,我們想要查詢所有i>50的文檔: 

BasicDBObject query = new BasicDBObject(); 
query.put("i", new BasicDBObject("$gt", 50)); 
cur = coll.find(query); 
while(cur.hasNext()){ 
System.out.println(cur.next()); 
} 

當然,我們也可以做20 < i <= 30的查詢 

BasicDBObject query = new BasicDBObject(); 
query.put("i", new BasicDBObject("$gt", 20).append("$lte", 30)); 
cur = coll.find(query); 
while(cur.hasNext()){ 
System.out.println(cur.next()); 
} 

12 創建索引 
MongoDB支持索引,而且很容易在集合上增加索引。要創建索引,只需要指定要加索引的屬性,並且指定升序(1)或降序即可(-1)。 

coll.createIndex(new BasicDBObject("i", 1)); 

13 獲取索引列表 

List<DBObject> list = coll.getIndexInfo(); 
for(DBObject o : list){ 
System.out.println(o); 
} 

14 MongoDB管理函數 
管理函數在com.mongodb.MongoAdmin類中定義。 
例A:獲取數據庫列表 
MongoAdmin admin = new MongoAdmin(); 
for(String s : admin.getDatabaseNames()){ 
  System.out.println(s); 
} 

例B:獲取數據庫對象 
Mongo m = admin.getDB("mydb"); 

例C:刪除數據庫 
admin.dropDatabase("mydb"); 

15 用DBObject存儲JAVA對象 
MongoDB for JAVA驅動中提供了用於向數據庫中存儲普通對象的接口DBObject 
例如,存在一個需要存儲的對象類Tweet 
public class Tweet implements DBObject{ 
/*...*/ 
} 
可以使用如下代碼: 

Tweet myTweet = new Tweet(); 
myTweet.put("user", userId); 
myTweet.put("message", message); 
myTweet.put("date", new Date()); 

collection.insert(myTweet); 

當一個文檔從MongoDB中取出時,它會自動把文檔轉換成DBObject接口類型,要將它實例化爲你的對象,需使用 

DBCollection.setObjectClass()。 
collection.setObjectClass(Tweet); 
Tweet myTweet = (Tweet)collection.findOne(); 

16 JAVA驅動的併發性 
JAVA的MongoDB驅動是線程安全的。如果你將它用在WEB服務中,可以創建它的一個單例,並在所有請求中使用它。 

然而,如果你需要在一個會話(例如HTTP請求)中保證事務一致性,也許你會希望在這個會話中對驅動使用同一個端口。這僅僅在 

請求量非常大的環境中,例如你經常會讀取剛寫入的數據。 
爲了這一點,你需要使用如下代碼: 
Mongo m; 
m.restartStart(); 

// code......... 

m.requestDone(); 


以上介紹了簡單的mongoDB使用,更多信息請查閱MongoDB API for Java。 

官方主頁:http://www.mongodb.org/display/DOCS/Home 


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/lolinzhang/archive/2009/07/16/4353699.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章