mongodb安裝與使用,mongodb安裝使用

來源:互聯網
上載者:User

mongodb安裝與使用,mongodb安裝使用

一.MongoDB安裝和啟動

widndows和linux基本相同

1.下載資料庫,

    linux:mongodb-linux-x86_64-ubuntu1404-3.0.3.tgz

2.解壓檔案,並且放置到合適的位置

    tar -vxf mongodb-linux-x86_64-ubuntu1404-3.0.3.tgz

    mv mongodb-linux-x86_64-ubuntu1404-3.0.3 /usr/local/mongodb

3.建立必要得檔案夾以及檔案

    資料庫檔案夾:/usr/local/mongodb/data/db

    記錄檔:/usr/local/mongodb/data/log/mongodb.log

    完了之後記得給檔案夾和檔案授權,否則服務開不起來.

4.設定資料庫位置以及日誌位置並且開啟服務:

    bin(linux)->./mongod --port 27017 --dbpath /usr/local/mongodb/data/db --logpath /usr/local/mongodb/data/log/mongodb.log

    linux下注意檔案及和檔案讀寫權限.當然開啟服務還有很多參數,不一一列舉.

    bin(win)->mongod --port 27017  --dbpath "D:\Program Files\MongoDB\Server\3.0\data\db" --logpath "D:\Program Files\MongoDB\Server\3.0\data\log\MongoDB.log"

5.串連資料庫:

    bin(linux)->./mongo

    bin(win)->mongo.exe

    注意:在windows下建立檔案夾以及記錄檔不再說明操作過程,很簡單.還有一點是在服務啟動以後,不要關閉啟動服務的介面,也不能Ctrl+C,串連資料庫的時候需要新起視窗.當然也可以讓服務後台運行.後台運行命令:nohup ./mongod --port 27017 --dbpath /usr/local/mongodb/data/db --logpath /usr/local/mongodb/data/log/mongodb.log &

6.通過圖形介面的用戶端串連mongodb

    windows下可選得比較多,包括robomongo,mongoVUE等等,linux下可用robomongo.直接去官網上下載然後安裝即可.robomongo的優勢是可以直接在軟體中敲shell命令,並且有提示;mongoVUE的優勢是查詢截面清晰,不用敲完整的複雜得shell命令.

7.mongodb的其他指令碼命令

    備份:mongodump/恢複:mongorestore

    匯入資料:mongoimport -d dbName -c collectionName --file filePath;還有其他很多選擇性參數

    匯出資料:mongoexport -d dbName -c collectionName -o filePaht;還有其他很多選擇性參數

    匯入匯出資料預設都是json格式的檔案,當然為了適應和其他資料庫的資料互動,可選擇匯入匯出的檔案為CVS檔案。

  

二.MongoDB的簡單使用

    使用mongoDB進行CRUD操作,就是通過執行響應的shell語句,所以實質上是對shell語句的使用.首先需要瞭解mongoDB的幾種簡單對象:db,collection,document.

    db:資料庫物件,等同於關聯式資料庫中的資料庫物件

    collection:集合對象,等同於關聯式資料庫中的表

    document:文檔對象,等同於關聯式資料庫中表中的一行記錄

1、對資料庫的操作:

>db;//查看當前使用的是那個資料庫

>show dbs;//展示所有的資料庫

>use dbName;//使用某個資料庫,如果資料庫不存在,就建立資料庫,所以建立資料庫也是使用這個命令

>db stats();//查看資料庫目前狀態資訊

>db.dropDatabase();//刪除當前的資料庫

2、對集合的操作:

>db.createCollection(collectionName,option);//collectionName是集合名稱,option是選擇性參數,包括資料庫大小等。

>db.collectionName.drop();//刪除集合,其中collectionName是集合的名稱

3、對文檔的操作:

>db.collectionName.insert(document);//向集合中插入資料,其中document(Json)是一個json對象或者數組

>db.collectionName.find(condition);db.collectionName.findOne();db.collectionName.find().pertty();

//查詢記錄,其中condition(Json)為過濾條件,如果不添表示所有。pertty()表示輸出格式最佳化,find還有很多詳細的處理後面介紹。

>db.collectionName.update(condition,updateDate);//更新記錄,其中condition(Json)為過濾條件json格式。updateDate為待更新的資料

//>db.mycol.update({"a":1},{$set:{"b":"B"}});將mycol集合中a欄位為1的對象的b欄位改為"B"

>db.collectionName.remove(condition,justOne);//刪除記錄,其中condition(Json)為過濾條件,justOne(boolean)表示是否只刪除第一條,如果都不添,表示清空集合

>db.collectionName.find().skip(num).limit(num);//分頁查詢,其中num(Number)是起始頁和每頁大小。

>db.collectionName.find(condition,{Key:isHead});//投影,第二個json表示某個欄位是否隱藏,isHead(0/1)表示

>db.collectionName.find().sort({Key:upOrDown});//結果排序,key為排序關鍵字,upOrDown(-1/1)表示升序還是降序

>db.collectionName.ensureIndex({key:upOrDown});//建立索引,key為索引欄位,upOrDown(-1/1)表示升序還是降序

>db.collectionName.aggregate(options);//聚集合函式,options(JsonArray)有多種可選。

//db.mycol.aggregate([{$group:{field:"$by_field",total:{$sum:1}}}]);//按照by_field欄位分組,顯示field列和total列

 

三.Java操作MongoDB:

    在java操作mongo的時候,首先需要有jar包支援。如果使用mave,依賴如下:

<dependency>    <groupId>org.springframework.data</groupId>    <artifactId>spring-data-mongodb</artifactId>    <version>1.3.0.RELEASE</version></dependency><dependency>    <groupId>org.mongodb</groupId>    <artifactId>mongo-java-driver</artifactId>    <version>2.11.1</version></dependency>

    幾個基本java對象的說明如下:

Mongo:資料庫連接對象

    Mongo monge = new Mongo("localhost",portl);

DB:資料庫物件

    DB db = monge.getDB("dbName");

DBCollection:集合對象

    DBCollection collection = db.getCollection("collectionName");

BasicDBObject:文檔對象

    BasicDBObject  basicDBObject = new BaseDBObject();

DBObject:文檔對象的超類

    DBObject dbObject = (DBObject)JSON.parse("json");

DBCursor:操作過程中的遊標

    DBCursor cursor = collection.find();

    DBCursor cursor = collection.find("conditionJson");

    具體使用代碼如下:

@Testpublic void testMongo() throws UnknownHostException{    Mongo mongo = new MongoClient("127.0.0.1", 27017);// 資料庫連接    DB db = mongo.getDB("test");// 資料庫物件    DBCollection coll1 = db.getCollection("coll1");// 擷取集合對象    DBCollection coll2 = db.createCollection("coll2", null);    Set<String> collSet = db.getCollectionNames();    DBObject doc1 = new BasicDBObject("a", 1);// 資料庫文檔對象    doc1.put("b", "B");    DBObject doc2 = (DBObject) JSON.parse("{\"a\":2,\"b\":\"B\"}");     // 插入資料    coll1.insert(doc1, doc2);     // 修改資料    DBObject update = (DBObject) JSON.parse("{\"a\":2,\"b\":\"updateB\"}");    coll1.update(new BasicDBObject("a", 2), update, true, false);    Map<String, Object> map = new HashMap<String, Object>();    map.put("c", "updateC");    map.put("d", 4);    coll1.update(new BasicDBObject("a", 1), new BasicDBObject(map));     // 查詢文檔對象    DBObject ref = (DBObject) JSON.parse("{\"b\":\"updateB\"}");    DBCursor cursor = coll1.find(ref);    while (cursor.hasNext())    {        DBObject obj = cursor.next();        int valuea = (Integer) obj.get("a");        String valueb = (String) obj.get("b");        System.out.println(valuea + "-" + valueb);        System.out.println(obj);    }     // 刪除資料    coll1.remove(new BasicDBObject("a", 1));    coll1.drop();// 清空資料}


相關文章

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.