MongoDB命令列操作

來源:互聯網
上載者:User

標籤:

1. 串連MongoDB:

   Mongodb://username:[email protected]/dbname

2. 建立資料庫:

   use dbname:如果資料庫不存在則建立資料庫,否則切換到指定資料庫。

3. 查看所有資料庫:

   show dbs

註:

    該命令不會顯示新建立的空資料庫,若想顯示需要向空資料庫插入一些資料。

    MongoDB中預設的資料庫為test,若果沒有建立新的資料庫,集合將存放於test中。

 

4. 查看當前資料庫名:

 

   db

 

5. 刪除資料庫:

 

   db.dropDatabase():刪除當前資料庫。

 

6. 插入文檔:

 

   使用use命令選擇指定資料庫然後再執行插入操作:

 

   db.collection_name.insert(document):向資料庫某集合插入文檔,若該集合不在

 

   該資料庫中則MongoDB會自動建立該集合并插入文檔。

 

   使用樣本:

 

   >db.col.insert({title: ‘MongoDB命令列操作‘, 

 

       description: ‘使用Shell命令列操作MongoDB‘,

 

       by: ‘吳俊填‘,

 

       tags: [‘mongodb‘, ‘database‘, ‘NoSQL‘],

 

       likes: 100

 

   })

 

(也可以將文檔定義為一個變數然後再插入該變數)

7. 查看已插入文檔:

   使用use命令選擇指定資料庫然後再執行查詢操作:

    db.collection_name.find():以非結構化方式顯示文檔

    db.collection_name.find().pretty():以結構化方式顯示文檔

    db.collection_name.findOne():只返回一個文檔(以結構化方式顯示)

   條件查詢樣本:

    db.collection_name.find({‘name’:’wujuntian’})

    db.col.find({"likes":{$ne:50}}).pretty()    //不等於

    db.col.find({$or:[{"by":"吳俊填"},{"title": "MongoDB命令操作"}]}).pretty()     //或

    db.col.find({"likes": {$gt:50}, $or: [{"by": "吳俊填"},{"title": "MongoDB命令操作"}]}).pretty()

    db.col.find({likes : {$lt :200, $gt : 100}})

8. 更新文檔:

(1)update()方法:用於更新已存在的文檔。

   db.collection.update(

      <query>,

      <update>,

      {

        upsert: <boolean>,

        multi: <boolean>,

        writeConcern: <document>

      }

   )

   參數說明:

   query : update的查詢條件,類似sql update查詢內where後面的內容。

   update : update的對象和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set後面的內容。

   upsert : 可選,這個參數的意思是,如果不存在update的記錄,是否插入新記錄,true為插入,預設是false,不插入。

   multi : 可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。

   writeConcern :可選,拋出異常的層級。

   使用樣本:

   >db.col.update({‘title‘:‘MongoDB‘},{$set:{‘title‘:‘MongoDB命令操作‘}},{multi:true})

(2)save方法:通過傳入的文檔來替換已有文檔。

   db.collection.save(

      <document>,

      {

        writeConcern: <document>

      }

   )

   參數說明:

   document : 文檔資料。

   writeConcern :可選,拋出異常的層級。

   樣本:

   >db.col.save({

       "_id" : ObjectId("56064f89ade2f21f36b03136"),    //替換此_id指定的文檔

       "title" : "MongoDB",

       "description" : "MongoDB 是一個 Nosql 資料庫",

       "tags" : [

               "mongodb",

               "NoSQL"

       ],

       "likes" : 110

   })

註:

    如果不指定_id,save()方法類似於inser()方法。

 

9. 刪除文檔:

 

   db.collection.remove(

 

      <query>,

 

      {

 

        justOne: <boolean>,

 

        writeConcern: <document>

 

      }

 

   )

 

   參數說明:

 

   query :(可選)刪除的文檔的條件。

 

   justOne : (可選)如果設為 true 或 1,則只刪除一個文檔。

 

   writeConcern :(可選)拋出異常的層級。

 

   樣本:

 

   >db.col.remove({‘title‘:‘MongoDB‘})

 

   >db.col.remove()     //刪除所有資料

 

10. MongoDB $type操作符

 

   $type操作符是基於BSON類型來檢索集合中匹配的資料類型,並返回結果。

 

   樣本:db.col.find({"title" : {$type : 2}})

 

   (擷取“col”集合中title為String資料類型的資料)

 

11. limit():讀取指定數量的資料記錄。

 

    db.COLLECTION_NAME.find().limit(NUMBER)

 

    使用樣本:

 

    db.col.find({},{"title":1,_id:0}).limit(2)

 

12. skip():跳過指定數量的資料記錄。

 

    db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

 

    使用樣本:

 

    db.col.find({},{"title":1,_id:0}).limit(1).skip(1)

 

13. sort():對資料記錄進行排序。

 

    sort()可以通過參數指定排序的欄位,並使用1 和-1 來指定排序的方式,其中1 為升序排列,而-1是用於降序排列。如果沒有指定排序方式,預設按照文檔的升序排列。

 

    db.COLLECTION_NAME.find().sort({KEY:1})

 

   使用樣本:

 

    db.col.find({},{"title":1,_id:0}).sort({"likes":-1})

14. ensureIndex():建立索引。

   db.COLLECTION_NAME.ensureIndex({KEY:1}) (1表示按升序建立索引,-1表示降序)

   樣本:

   db.col.ensureIndex({"title":1,"description":-1})

註:

      MongoDB中的索引是儲存在B樹結構中的。

15. aggregate():彙總。

   db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

   樣本:

   db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])

   類似於select by_user, count(*) from mycol group by by_user

 

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.