MongoDB的基本使用及java對MongoDB的基本增刪改查

來源:互聯網
上載者:User

標籤: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服務命令

    mongod --dbpath F:\mongodb\data --logpath F:\mongodb\logs\a.log --serviceName MongoDB --install
  • 啟動和停止MongoDB服務

    net start MongoDBnet stop MongoDB
  • 刪除MongoDB服務(先停止服務)

    sc delete MongoDB

 

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的基本增刪改查

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.