記MongoDB的簡單命令

今天對mongodb的簡單命令操做學習了一番,作出如下總結。mysql

mongodb數據庫的簡單操做

mongodb是一個非關係型數據庫,它不能像關係型數據庫那樣進行一些增刪改查的操做,咱們須要使用一些特殊的命令來操做mongodb。sql

鏈接mongodb數據庫

鏈接mongodb有一個固定的語法,可使用以下幾種方式mongodb

  • 使用用戶名和密碼鏈接登錄到默認數據庫shell

    $ ./mongo
    MongoDB shell version: 3.0.6
    connecting to: test
    複製代碼
  • 使用用戶 admin使用密碼123456 鏈接到本地的 MongoDB 服務上數據庫

    $ mongodb://admin:123456@localhost/
    複製代碼
  • 使用用戶名和密碼鏈接登錄到指定數據庫json

    $ mongodb://admin:123456@localhost/test
    複製代碼

建立mongodb數據庫

MongoDB 建立數據庫的語法格式以下:後端

$ use DataBase_Name
複製代碼

注意:若是指定的數據庫不存在,則建立數據庫,若是數據庫存在,則切換到指定數據庫bash

刪除數據庫

MongoDB 刪除數據庫的語法格式以下app

$ db.dropDatabase()
複製代碼

注意: 在此得的db指代的是切換到某一個數據庫下面之後的數據庫實例sqlserver

建立集合

在mongodb數據庫中,之前的表(table)的形式在這裏是以集合的形式存在的,MongoDB 中使用 createCollection() 方法來建立集合。語法格式以下:

$ db.createCollection(name, options)
複製代碼

說明: name: 要建立的集合名稱,options: 可選參數, 指定有關內存大小及索引的選項,具體的options的參數,咱們能夠參考下面的表格

字段 類型 描述
capped 布爾 (可選)若是爲 true,則建立固定集合。固定集合是指有着固定大小的集合,當達到最大值時,它會自動覆蓋最先的文檔。當該值爲 true 時,必須指定 size 參數。
autoIndexId 布爾 (可選)如爲 true,自動在 _id 字段建立索引。默認爲 false。
size 數值 (可選)爲固定集合指定一個最大值(以字節計)。若是 capped 爲 true,也須要指定該字段。
max 數值 (可選)指定固定集合中包含文檔的最大數量。

下面,咱們就嘗試去建立一個集合

$ db.createCollection("userInfo", { capped : true, autoIndexId : true, size : 
   6142800, max : 10000 } )
複製代碼

說明:在mongodb當中,建立集合並不是是必定的,當咱們向裏面去插入一條數據的時候,這個集合就會本身去建立

$ db.userInfo.insert({"userName" : "yangbiao"})刪除集合
複製代碼

刪除集合

MongoDB 中使用 drop() 方法來刪除集合。具體的語法格式以下:

$ db.collection.drop()
複製代碼

例如,若是咱們想把剛剛建立的usrInfo這個集合刪除,則可使用以下語法

$ db.userInfo.drop()
複製代碼

插入文檔

在此處須要說明一下,之前的關係型數據庫(mysql,sqlserver,oracel等數據庫),這些都是關係型數據庫,存儲是以表爲單爲,表中又以行爲單位,而mongodb是一個非關係型數據庫,已經沒有表與行的概念了

mongodb的集合中,全部的數據都是以json鍵值對的形式在進行存儲,若是咱們但願向裏面去插入一條信息,則至關因而插入一個json鍵值對(也能夠理解爲一個js對象),它的語法格式以下

$ db.userInfo.insert({name:'樊啓東',sex:'男'})
複製代碼

在上面的語句中插入了一行記錄,這一行記錄是以json鍵值對的形式插入進去的

更新文檔

在mongodb當中,更新文檔的方式有兩種。

  • (1) save()
  • (2)update()

如今,咱們來看一下這兩種方式的語法與區別

  • save方法

    save() 方法經過傳入的文檔來替換已有文檔。語法格式以下

    $ db.collection.save(
       <document,
       {
         writeConcern: <document
       }
    )
    複製代碼

    如今看一下具體的語法

    $ db.col.save({
        "_id" : ObjectId("56064f89ade2f21f36b03136"),
        "title" : "MongoDB",
        "description" : "我如今經過mongodb插入數據"
    })
    複製代碼

    在此,咱們保存的是一個已經存在的文檔

  • update方法

    $ db.collection.update(
       <query,
       <update,
       {
         upsert: <boolean,
         multi: <boolean
       }
    )
    複製代碼

    說明一下:

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

    • update: update的對象和一些更新的操做符(如,inc...)等,也能夠理解爲sql update查詢內set後面的

    • upsert: 可選,這個參數的意思是,若是不存在update的記錄,是否插入objNew,true爲插入,默認是false,不插入。

    • multi: 可選,mongodb 默認是false,只更新找到的第一條記錄,若是這個參數爲true,就把按條件查出來多條記錄所有更新。

    如今,咱們看一下具體的語法格式

    $db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })   # 輸出信息
     db.col.find().pretty()
    {
            "_id" : ObjectId("56064f89ade2f21f36b03136"),
            "title" : "MongoDB",
            "description" : "我經過update寫入的數據",
    }
    複製代碼

    經過對上面命令的總結,逐漸對非關係型數據庫有了必定的認知和熟悉,但願可以在接下來的日子裏,按部就班,爭取早點學會MongoDB,那樣就能先後端一把梭哈,爲所欲爲,還能體驗刪庫跑路的操做啦! (O(∩_∩)O哈哈~,固然是不可能的)

相關文章
相關標籤/搜索