標籤:code put -- void mil pass 查詢 基於 font
MongoDB的特點
- MongoDB 是文檔儲存資料庫,儲存結構靈活
- MongoDB 支援複雜查詢操作、支援序列
- MongoDB 採用C++開發,可以做分布式擴充
- MongoDB 採用BSON格式儲存
- MongoDB 支援js引擎,可以編寫js語句塊
安裝和使用
1.以管理員身份運行cmd.exe進入命令列控制台,啟動mongod服務端,
mongod --dbpath F:\mongodb\data --logpath F:\mongodb\logs\a.log
啟動mongo用戶端:mongo
2.將伺服器啟動做成Window服務
以管理員身份運行cmd.exe進入命令列控制台
MongoDB操作命令庫操作(使用者空間)
- show dbs //查看有哪些庫
- use xxx //建立使用某個庫
- db.dropDatabase() //刪除當前庫
集合操作(表)
- show collections //查看當前庫有哪些集合
- db.xxx.insert() //插入記錄時自動建立集合
- db.xxx.drop() //刪除集合
記錄操作(記錄)
db.xxx.insert() //插入記錄
db.emp.insert({"empno":1001,"ename":"tom"})db.dept.insert([{"dno":111,"dname":"ui"},{"dno":112,"dname":"h5"}])for(var i=1;i<100;i++){ db.dept.insert({"dno":i,"dname":"java"+i});};
db.xxx.find() //查詢記錄
db.emp.find()db.dept.find({"dno":50})db.dept.find({"dno":{$gt:90}})db.dept.find({"dname":/h/})
db.xxx.update() //更新記錄
//整體更新db.dept.update({"dno":2},{"dname":"php"})//局部更新db.dept.update({"dno":3},{$set:{"dname":"h5"}})//更新多條記錄,第三個false表示沒有符合記錄不插入;true表示插入。第四個參數true表示多行更新;false表示單行db.dept.update({"dno":{$lt:10}},{$set:{"dname":"JAVA"}},false,true)
db.xxx.remove() //刪除記錄
db.emp.remove({})db.dept.remove({"dno":1})db.dept.remove({"dno":{$gt:50}})
其他動作
統計
//統計dept記錄數量db.dept.count()//擷取dname值,去重db.dept.distinct("dname")
排序
//按dname降序排列db.dept.find().sort({"dname":-1})//按dname升序排列db.dept.find().sort({"dname":1})
分頁
//擷取前5條記錄db.dept.find().limit(5)//跳過5條再取5條(取6-10)db.dept.find().skip(5).limit(5)
索引
db.dept.ensureIndex({"dname":1}) db.dept.dropIndexes()db.dept.find({"dname":"java99999"}).explain("executionStats")
Java訪問MongoDB基於mongo-java包基本訪問
API介紹
- MongoClient 連線物件 Mongo- MongoDatabase 庫對象 DB- MongoCollection 集合對象 DBCollection- MongoCursor 查詢結果集對象 DBCoursor- Document 記錄對象 DBObject
public class MongoDBTest { @Test public void test1() { MongoClient m = new MongoClient("localhost", 27017); MongoIterable<String> dbs = m.listDatabaseNames();// 查詢資料庫列表 MongoCursor<String> iterator = dbs.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } } //查詢全部測試 @Test public void test2() { MongoClient m = new MongoClient("localhost", 27017); MongoDatabase dbs = m.getDatabase("java20");// 查詢資料庫名 /// 查詢資料庫表 /java20.java20 MongoCollection<Document> collection = dbs.getCollection("java20"); MongoCursor<Document> cusor = collection.find().iterator();// 查詢資料 // 使用迭代器進行迭代 while (cusor.hasNext()) { Document next = cusor.next(); Object object = next.get("user"); String name = next.getString("name"); String pwd = next.getString("pwd"); System.out.println("userID" + object + " name: " + name + "|| :Password:" + pwd); } } //過濾查詢測試 @Test public void test3() { MongoClient m = new MongoClient("localhost", 27017); MongoDatabase database = m.getDatabase("java20"); MongoCollection<Document> collections = database.getCollection("java20"); // Bson filter = Filters.lt("dno", 10);//{"dno":{$lt:10}} Bson lt = Filters.lt("user", 10); MongoCursor<Document> documents = collections.find(lt).iterator(); while (documents.hasNext()) { Document d = documents.next(); Object userid = d.get("user"); Object name = d.get("name"); Object pwd = d.get("pwd"); System.out.println("id為:" + userid + " 姓名是:" + name + " 密碼是:" + pwd); } m.close(); } //插入測試 @Test public void test4() { MongoClient m = new MongoClient(); MongoDatabase database = m.getDatabase("java20");//使用java20的一個資料庫 MongoCollection<Document> coll= database.getCollection("emp");//尋找emp的表,如果沒有emp表就建立一個表 Document doc=new Document(); doc.put("eno", 1003); doc.put("ename", "being"); doc.put("salary", 5755); coll.insertOne(doc); } //局部更新 @Test public void Test5(){ MongoClient m=new MongoClient("localhost",27017); MongoDatabase database = m.getDatabase("java20");//擷取當前資料庫的庫名 MongoCollection<Document> emp = database.getCollection("emp");// Bson where = Filters.eq("eno", 1002);// Document doc=new Document(); doc.put("salary", 8356); //{"salary":4646} Document up=new Document(); up.put("$set", doc); //{$set:{"salary":5657}} //這裡使用了更新 emp.updateOne(where, up); m.close(); } //全部更新 @Test public void Test6(){ MongoClient m=new MongoClient("localhost",27017); MongoDatabase database = m.getDatabase("java20"); MongoCollection<Document> emp = database.getCollection("emp"); Bson eq = Filters.eq("eno", 1003); //System.out.println(eq); Filter{fieldName=‘eno‘, value=1003} Document doc=new Document(); doc.put("salary", 500); //這裡使用了替換 emp.replaceOne(eq, doc);//全部更新 m.close(); }}
MongoDB的基本使用及java對MongoDB的基本增刪改查