MongoDB做為NoSQL數據庫,最近幾年持續升溫,越來越多的企業都開始嘗試用MongoDB代替原有Database做一些事情。MongoDB也在集群,分片,復制上也有相當不錯的的表現。我通過將做各種MongoDB的部署實驗進行介紹。
關于作者:
- 鄭云飛, 程序員Java,Javascript,jquery,css,html,springMVC,Struts2,hibernate,oracle,mysql,hadoop,hbase,hive,sqoop,zookeeper,mongodb,redis
- weibo:@zhengyunfei
-
blog: zhengyunfei.iteye.com
- email: zhengyunfei8@gmail.com ? ?799078779@qq.com
前言
MongoDB作為一種文檔型的NoSQL數據庫,使用起來非常靈活,回避了關系型數據庫前期的復雜數據庫設計。MongoDB存儲基于JSON格式,同時用Javascript做為數據庫操作語言,給了使用者無限想象的空間,可以通過編程在MongoDB服務器中解決非常復雜的條件查詢的問題。
目錄
- Mongodb創建數據庫鏈接
- java操作mongodb的方法
1 創建數據庫鏈接類
package com.mongodb.test;
import java.net.UnknownHostException;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;
public class DataBase {
public static void main(String[] args) throws UnknownHostException, MongoException {
Mongo mg=new Mongo("127.0.0.1:27017");
//查詢所有DataBase
for(String name:mg.getDatabaseNames()){
System.out.println("dbName:"+name);
}
//創建相關數據庫的鏈接
DB db=mg.getDB("");
//查詢數據庫所有的集合
for(String name:db.getCollectionNames()){
System.out.println("collectionName:"+name);
}
DBCollection users=db.getCollection("persons");
//查詢所有的數據
DBCursor cur=users.find();
while(cur.hasNext()){
DBObject object=cur.next();
System.out.println(object.get("name"));
}
System.out.println(cur.count());
System.out.println(cur.getCursorId());
System.out.println(JSON.serialize(cur));
}
}
java 操作mongodb的方法
package com.mongodb.test;
import java.net.UnknownHostException;
import java.util.List;
import org.bson.types.ObjectId;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
public class MongoDB {
//1.建立一個mongodb的數據庫鏈接對象
private static Mongo connection=null;
//創建相關數據庫的鏈接
private static DB db=null;
public MongoDB(String dbName) throws UnknownHostException, MongoException{
connection=new Mongo("");
db=connection.getDB(dbName);
}
public static void main(String[] args) throws UnknownHostException, MongoException {
//實例化
MongoDB mongoDb=new MongoDB("footbar");
/**
* 1.創建一個名字叫javadb的數據庫
*/
// mongoDb.createCollection("javadb");
/**
* 2.為集合javadb添加一條數據
*/
// DBObject dbs = new BasicDBObject();
// dbs.put("name", "uspcat.com");
// dbs.put("age", 2);
// List<String> books = new ArrayList<String>();
// books.add("EXTJS");
// books.add("MONGODB");
// dbs.put("books", books);
// mongoDb.insert(dbs, "javadb");
/**
* 3.批量插入數據
*/
// List<DBObject> dbObjects = new ArrayList<DBObject>();
// DBObject jim = new BasicDBObject("name","jim");
// DBObject lisi = new BasicDBObject("name","lisi");
// dbObjects.add(jim);
// dbObjects.add(lisi);
// mongoDb.insertBatch(dbObjects, "javadb");
/**
* 4.根據ID刪除數據
*/
// mongoDb.deleteById("502870dab9c368bf5b151a04", "javadb");
/**
* 5.根據條件刪除數據
*/
// DBObject lisi = new BasicDBObject();
// lisi.put("name", "lisi");
// int count = mongoDb.deleteByDbs(lisi, "javadb");
// System.out.println("刪除數據的條數是: "+count);
/**
* 6.更新操作,為集合增加email屬性
*/
// DBObject update = new BasicDBObject();
// update.put("$set",
// new BasicDBObject("eamil","test @126.com "));
// mongoDb.update(new BasicDBObject(),
// update,false,true,"javadb");
/**
* 7.查詢出persons集合中的name和age
*/
// DBObject keys = new BasicDBObject();
// keys.put("_id", false);
// keys.put("name", true);
// keys.put("age", true);
// DBCursor cursor = mongoDb.find(null, keys, "persons");
// while (cursor.hasNext()) {
// DBObject object = cursor.next();
// System.out.println(object.get("name"));
// }
/**
* 7.查詢出年齡大于26歲并且英語成績小于80分
*/
// DBObject ref = new BasicDBObject();
// ref.put("age", new BasicDBObject("$gte",26));
// ref.put("e", new BasicDBObject("$lte",80));
// DBCursor cursor = mongoDb.find(ref, null, "persons");
// while (cursor.hasNext()) {
// DBObject object = cursor.next();
// System.out.print(object.get("name")+"-->");
// System.out.print(object.get("age")+"-->");
// System.out.println(object.get("e"));
// }
/**
* 8.分頁例子
*/
DBCursor cursor = mongoDb.find(null, null, 0, 3, "persons");
while (cursor.hasNext()) {
DBObject object = cursor.next();
System.out.print(object.get("name")+"-->");
System.out.print(object.get("age")+"-->");
System.out.println(object.get("e"));
}
//關閉連接對象
connection.close();
}
/**
* 穿件一個數據庫集合
* @param collName 集合名稱
* @param db 數據庫實例
*/
public void createCollection(String collName){
DBObject dbs = new BasicDBObject();
db.createCollection("javadb", dbs);
}
/**
* 為相應的集合添加數據
* @param dbs
* @param collName
*/
public void insert(DBObject dbs,String collName){
//1.得到集合
DBCollection coll = db.getCollection(collName);
//2.插入操作
coll.insert(dbs);
}
/**
* 為集合批量插入數據
* @param dbses
* @param collName
*/
public void insertBatch(List<DBObject> dbses,String collName){
//1.得到集合
DBCollection coll = db.getCollection(collName);
//2.插入操作
coll.insert(dbses);
}
/**
* 根據id刪除數據
* @param id
* @param collName
* @return 返回影響的數據條數
*/
public int deleteById(String id,String collName){
//1.得到集合
DBCollection coll = db.getCollection(collName);
DBObject dbs = new BasicDBObject("_id", new ObjectId(id));
int count = coll.remove(dbs).getN();
return count;
}
/**
* 根據條件刪除數據
* @param id
* @param collName
* @return 返回影響的數據條數
*/
public int deleteByDbs(DBObject dbs,String collName){
//1.得到集合
DBCollection coll = db.getCollection(collName);
int count = coll.remove(dbs).getN();
return count;
}
/**
* 更新數據
* @param find 查詢器
* @param update 更新器
* @param upsert 更新或插入
* @param multi 是否批量更新
* @param collName 集合名稱
* @return 返回影響的數據條數
*/
public int update(DBObject find,
DBObject update,
boolean upsert,
boolean multi,
String collName){
//1.得到集合
DBCollection coll = db.getCollection(collName);
int count = coll.update(find, update, upsert, multi).getN();
return count;
}
/**
* 查詢器(分頁)
* @param ref
* @param keys
* @param start
* @param limit
* @return
*/
public DBCursor find(DBObject ref,
DBObject keys,
int start,
int limit,
String collName){
DBCursor cur = find(ref, keys, collName);
return cur.limit(limit).skip(start);
}
/**
* 查詢器(不分頁)
* @param ref
* @param keys
* @param start
* @param limit
* @param collName
* @return
*/
public DBCursor find(DBObject ref,
DBObject keys,
String collName){
//1.得到集合
DBCollection coll = db.getCollection(collName);
DBCursor cur = coll.find(ref, keys);
return cur;
}
}
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

