亚洲欧美日韩熟女|做爱高潮视频网址|国产一区二区三级片|国产Av中文字幕www.性色av|亚洲婷婷永久免费|国产高清中文字幕|欧美变态网站久re视频精品|人妻AV鲁丝第一页|天堂AV一区二区在线观看|综合 91在线精品

mongodb4.4常用命令《三》

2023-04-12

1.db.adminCommand()

例子:


(1).killOp
以下示例使用db.adminCommand()方法執(zhí)行killOp命令以終止opid 724的操作。 killOp是 Management 命令,必須在admin數(shù)據(jù)庫上運(yùn)行。
db.adminCommand( { "killOp": 1, "op": 724 } )
(2).renameCollection

以下示例使用db.adminCommand()執(zhí)行renameCollectionManagement 數(shù)據(jù)庫命令將test數(shù)據(jù)庫中的orders集合重命名為orders-2016。


db.adminCommand(
  {
     renameCollection: "test.orders",
     to: "test.orders-2016"
  }
)
(3).createUser

下面的示例使用db.adminCommand()方法在admin數(shù)據(jù)庫上創(chuàng)建一個(gè)具有dbOwner角色的名為bruce的用戶。


db.adminCommand(
  {
    createUser: "bruce",
    pwd: passwordPrompt(),  // or 
    roles: [
      { role: "dbOwner", db: "admin" }
    ]
  }
)

注意:從mongo Shell的4.2版本開始,您可以將passwordPrompt()方法與各種用戶身份驗(yàn)證/管理方法/命令結(jié)合使用以提示輸入密碼,而不是直接在方法/命令調(diào)用中指定密碼。 但是,您仍然可以像使用早期版本的mongo shell一樣直接指定密碼。


2.db.cloneDatabase()(從4.0版開始不推薦使用)

從4.2版開始,MongoDB刪除了clone命令。 包裝了clone命令的已棄用的db.cloneDatabase()僅可針對(duì)MongoDB 4.0或更早版本運(yùn)行。 有關(guān)行為和示例,請(qǐng)參考手冊(cè)的4.0或更早版本。


有關(guān)4.2+版中的替代方法,參見 Copy/Clone a Database.


db.cloneDatabase()方法不會(huì)快照數(shù)據(jù)庫。如果在克隆操作期間的任何時(shí)候有任何 Client 端更新您要復(fù)制的數(shù)據(jù)庫,則結(jié)果數(shù)據(jù)庫可能會(huì)不一致。


clone操作期間,目標(biāo)數(shù)據(jù)庫將定期鎖定。換句話說,db.cloneDatabase()偶爾會(huì)屈服以允許完成數(shù)據(jù)庫上的其他操作。


3.db.copyDatabase()

從4.2版開始,MongoDB刪除了clone命令。 包裝了clone命令的已棄用的db.cloneDatabase()僅可針對(duì)MongoDB 4.0或更早版本運(yùn)行。 有關(guān)行為和示例,請(qǐng)參考手冊(cè)的4.0或更早版本。


有關(guān)4.2+版中的替代方法,參見 Copy/Clone a Database.


db.copyDatabase(fromdb, todb, fromhost, username, password, mechanism)

例子1,拷貝本地?cái)?shù)據(jù)庫,將本地的數(shù)據(jù)庫test拷貝為test1


db.copyDatabase("test","test1")

例子2,復(fù)制遠(yuǎn)程數(shù)據(jù)庫(只能復(fù)制復(fù)制集上的數(shù)據(jù)庫)


語法: db.copyDatabase(fromdb, todb, fromhost, username, password, mechanism)


將遠(yuǎn)程機(jī)器10.2.3.114的數(shù)據(jù)庫test復(fù)制到本機(jī)并改名為test1


db.copyDatabase("test","test1","10.2.3.114:27017","user","123456")

4.db.commandHelp(command)

顯示指定的database command的幫助文本:


db.commandHelp(help)
db.commandHelp(db.help)
db.commandHelp(rs.help)
db.commandHelp(db.mycoll.help)

5.db.createCollection()

由于在命令中首次引用集合時(shí),MongoDB 會(huì)隱式創(chuàng)建一個(gè)集合,因此此方法主要用于創(chuàng)建使用特定選項(xiàng)的新集合。例如,您使用db.createCollection()創(chuàng)建capped collection或創(chuàng)建使用document validation的新集合。


資源鎖定:


在4.2版本做出,db.createCollection()在操作期間獲得對(duì)指定集合或視圖的排他鎖。 集合上的所有后續(xù)操作必須等待db.createCollection()釋放鎖。 db.createCollection()通常會(huì)短暫持有此鎖。創(chuàng)建視圖需要在數(shù)據(jù)庫中的system.views集合上獲得一個(gè)附加的排他鎖。 該鎖將阻止在數(shù)據(jù)庫中創(chuàng)建或修改視圖,直到命令完成。


在MongoDB 4.2之前,db.createCollection()在父數(shù)據(jù)庫上獲得了排他鎖,從而阻止了對(duì)數(shù)據(jù)庫及其所有集合的所有操作,直到操作完成。


例子:


創(chuàng)建Capped Collection


Capped Collection的集合具有最大的大小或文檔數(shù),可防止其增長(zhǎng)到超過最大閾值。 所有設(shè)置上限的集合必須指定最大大小,并且還可以指定最大文檔數(shù)。 如果集合在達(dá)到最大文檔數(shù)之前達(dá)到最大大小限制,則MongoDB會(huì)刪除較舊的文檔。 考慮以下示例:


db.createCollection("log", { capped : true, size : 5242880, max : 5000 } )

此命令將創(chuàng)建一個(gè)名為log的集合,最大大小為5 MB,最多5000個(gè)文檔。


使用文檔驗(yàn)證創(chuàng)建集合。


3.2 版中的新功能。具有驗(yàn)證的集合將每個(gè)插入或更新的文檔與validator選項(xiàng)中指定的條件進(jìn)行比較。根據(jù)validationLevel和validationAction,MongoDB 要么返回警告,要么在文檔不符合指定條件時(shí)拒絕插入或更新文檔。


以下示例使用 JSON 模式驗(yàn)證器創(chuàng)建contacts集合(MongoDB 3.6 添加了$jsonSchema運(yùn)算符以支持 JSON 模式驗(yàn)證。):


db.createCollection( "contacts", {
   validator: { $jsonSchema: {
      bsonType: "object",
      required: [ "phone" ],
      properties: {
         phone: {
            bsonType: "string",
            description: "must be a string and is required"
         },
         email: {
            bsonType : "string",
            pattern : "@mongodb\.com$",
            description: "must be a string and match the regular expression pattern"
         },
         status: {
            enum: [ "Unknown", "Incomplete" ],
            description: "can only be one of the enum values"
         }
      }
   } }
} )

使用驗(yàn)證器后,以下插入操作將使驗(yàn)證失?。?/p>


db.contacts.insert( { name: "Amanda", status: "Updated" } )

該方法在WriteResult中返回錯(cuò)誤:


WriteResult({
   "nInserted" : 0,
   "writeError" : {
      "code" : 121,
      "errmsg" : "Document failed validation"
   }
})

指定排序規(guī)則


db.myColl.find().sort( { category: 1 } )

6.db.createView()

將指定的聚合管道應(yīng)用于源集合或視圖的結(jié)果,創(chuàng)建一個(gè)視圖。 視圖充當(dāng)只讀集合,并在讀取操作期間按需計(jì)算。 您必須在與源集合相同的數(shù)據(jù)庫中創(chuàng)建視圖。 MongoDB對(duì)視圖執(zhí)行讀取操作,這是基礎(chǔ)聚合管道的一部分。


視圖表現(xiàn)出以下行為:


(1).Read Only

視圖是只讀的; 對(duì)視圖的寫操作將出錯(cuò)。以下讀取操作可以支持視圖:


db.collection.find()
db.collection.findOne()
db.collection.aggregate()
db.collection.countDocuments()
db.collection.estimatedDocumentCount()
db.collection.count()
db.collection.distinct()
(2).Index Use and Sort Operations(索引使用和排序操作)

視圖使用基礎(chǔ)集合的索引。


由于索引位于基礎(chǔ)集合上,因此您無法直接在視圖上創(chuàng)建,刪除或重建索引,也無法在視圖上獲取索引列表。


從MongoDB 4.4開始,可以在視圖上運(yùn)行find命令時(shí)指定$natural排序。 MongoDB的早期版本不支持對(duì)視圖進(jìn)行自然排序。


該視圖的基礎(chǔ)聚合管道必須遵守100 MB的內(nèi)存限制,才能阻止排序和阻止組操作。 從MongoDB 4.4開始,您可以在視圖上發(fā)出帶有allowDiskUse:true的find命令,以允許MongoDB使用臨時(shí)文件來阻止排序和組操作。


在MongoDB 4.4之前,僅聚合命令接受allowDiskUse選項(xiàng)。


(3).Projection Restrictions(投影限制)

視圖上的find()操作不支持以下projection運(yùn)算符:


$
$elemMatch
$slice
$meta
(4).Immutable Name

您不能重命名views。


具體例子參考:https://docs.mongodb.com/manual/reference/method/db.createView/


7.db.currentOp()

返回一個(gè)文檔,其中包含有關(guān)數(shù)據(jù)庫實(shí)例正在進(jìn)行的操作的信息。 db.currentOp()方法包裝數(shù)據(jù)庫命令currentOp。


注意:
由于currentOp命令和db.currentOp()幫助程序在單個(gè)文檔中返回結(jié)果,因此currentOp結(jié)果集的總大小受文檔最大16MB BSON大小限制。
從版本3.6開始,MongoDB提供$currentOp聚合階段。 $currentOp階段在一個(gè)文檔流上返回一個(gè)游標(biāo),每個(gè)文檔都報(bào)告一個(gè)操作。 每個(gè)操作文檔都受16MB BSON限制,但是與currentOp命令不同,結(jié)果集的總大小沒有限制。
因此,$currentOp聚合階段比currentOp命令及其mongo shell幫助器db.currentOp()更可取。

db.currentOp()可以接受過濾器文檔或布爾參數(shù)。如果將篩選器文檔傳遞給db.currentOp(),則輸出僅返回與篩選器匹配的當(dāng)前操作的信息。 篩選器文檔可以包含:


db.currentOp(true)                #指定true以包括對(duì)空閑連接的操作和系統(tǒng)操作
db.currentOp( { "$all": true } )  #則返回有關(guān)所有操作的信息,包括有關(guān)空閑連接的操作和系統(tǒng)操作。與db.currentOp(true)是等效的 
db.currentOp( { "$ownOps": true } )  #僅返回有關(guān)當(dāng)前用戶操作的信息。

db.currentOp和database profiler報(bào)告所有 CRUD 操作的相同基本診斷信息,包括以下內(nèi)容:


例子:


(1).Write Operations Waiting for a Lock(寫操作等待鎖定)
db.currentOp(
   {
     "waitingForLock" : true,
     $or: [
        { "op" : { "$in" : [ "insert", "update", "remove" ] } },
        { "command.findandmodify": { $exists: true } }
    ]
   }
)
(2).Active Operations with no Yields

以下示例返回有關(guān)從未生成的所有活動(dòng)運(yùn)行操作的信息:


db.currentOp(
   {
     "active" : true,
     "numYields" : 0,
     "waitingForLock" : false
   }
)

以下示例返回有關(guān)運(yùn)行時(shí)間超過3秒的數(shù)據(jù)庫db1所有活動(dòng)操作的信息:


db.currentOp(
   {
     "active" : true,
     "secs_running" : { "$gt" : 3 },
     "ns" : /^db1\./
   }
)
(3).Active Indexing Operations
db.adminCommand(
    {
      currentOp: true,
      $or: [
        { op: "command", "command.createIndexes": { $exists: true }  },
        { op: "none", "msg" : /^Index Build/ }
      ]
    }
)

8.db.fsyncLock()

強(qiáng)制mongod將所有未完成的寫操作刷新到磁盤并鎖定整個(gè)mongod實(shí)例,以防止其他寫操作,直到用戶使用相應(yīng)的db.fsyncUnlock()命令釋放該鎖為止。


db.fsyncLock()和db.fsyncUnlock()操作維護(hù)鎖定計(jì)數(shù)。 db.fsyncLock()遞增鎖計(jì)數(shù),而db.fsyncUnlock()遞減鎖計(jì)數(shù)。


要解鎖mongod實(shí)例進(jìn)行寫入,鎖定計(jì)數(shù)必須為零。 也就是說,對(duì)于給定數(shù)量的db.fsyncLock()操作,必須發(fā)出相應(yīng)數(shù)量的db.fsyncUnlock()操作以解鎖實(shí)例進(jìn)行寫操作。


9.db.fsyncUnlock()

將db.fsyncLock()在mongod實(shí)例上獲得的鎖定減少1。


要解鎖mongod實(shí)例進(jìn)行寫入,鎖定計(jì)數(shù)必須為零。 也就是說,對(duì)于給定數(shù)量的db.fsyncLock()操作,必須發(fā)出相應(yīng)數(shù)量的db.fsyncUnlock()操作以解鎖實(shí)例進(jìn)行寫操作。


10.db.getCollection(name)

返回在功能上等效于使用db.語法的集合或視圖對(duì)象。


db.getCollection()對(duì)象可以訪問任何collection methods。


使用db.getCollection()好處在于當(dāng)集合名字為auth時(shí),此時(shí)因?yàn)樗c數(shù)據(jù)庫方法db.auth()發(fā)生名稱沖突,直接調(diào)用db.auth來執(zhí)行插入操作將引用db.auth()方法,并且會(huì)出錯(cuò)。


11.db.getCollectionInfos()

返回包含當(dāng)前數(shù)據(jù)庫的集合或視圖信息(例如名稱和選項(xiàng))的文檔數(shù)組。


例子1.返回包含集合信息的所有文檔數(shù)組


use wang
db.getCollectionInfos()


例子2.返回特定集合的集合信息


use wang
db.getCollectionInfos({name:"blog"})


12.db.getCollectionNames()

返回一個(gè)數(shù)組,其中包含當(dāng)前數(shù)據(jù)庫中所有集合的名稱和views(在版本4.0中更改:db.getCollectionNames()不再鎖定集合以返回名稱信息。


wang> db.getCollectionNames()
[
        "analytics",
        "blog",
        "blog.posts",
        "c",
        "coll",
        "foo",
        "food",
        "lists",
        "movies",
        "nn2",
        "papers",
        "people",
        "players",
        "processes",
        "stock.ticker",
        "system.profile",
        "test2",
        "users",
        "users2",
        "users3",
        "whiteBoardConfig"
]
wang>

從mongo shell的4.0版開始,db.getCollectionNames()等效于:


db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )

13.db.getLastError() (已經(jīng)不推薦使用了)

指定寫關(guān)注級(jí)別,以確認(rèn)通過同一連接發(fā)出的先前寫操作是否成功,并返回該操作的錯(cuò)誤字符串。


在2.6版中進(jìn)行了更改:用于寫操作的新協(xié)議將寫關(guān)注點(diǎn)與寫操作集成在一起,從而無需單獨(dú)的db.getLastError()。 現(xiàn)在,大多數(shù)寫方法都返回寫操作的狀態(tài),包括錯(cuò)誤信息。 在以前的版本中,客戶端通常將db.getLastError()與寫入操作結(jié)合使用以驗(yàn)證寫入是否成功。


14.db.getLastErrorObj()(已經(jīng)不推薦使用了)

指定write concern級(jí)別,以確認(rèn)通過同一連接發(fā)出的先前寫操作是否成功,并返回該操作的document。 在 2.6 版中進(jìn)行了更改:write operations的新協(xié)議將寫入問題與寫入操作集成在一起,從而無需單獨(dú)的db.getLastErrorObj()。 大多數(shù)寫方法現(xiàn)在返回寫操作的狀態(tài),包括錯(cuò)誤信息。在以前的版本中,Client 端通常結(jié)合使用db.getLastErrorObj()和寫入操作來驗(yàn)證寫入是否成功。


15.db.getLogComponents()

返回當(dāng)前的詳細(xì)度設(shè)置。 詳細(xì)設(shè)置確定MongoDB為每個(gè)日志消息組件生成的日志消息的數(shù)量。


如果某個(gè)組件繼承了其父級(jí)的詳細(xì)級(jí)別,則db.getLogComponents()會(huì)為該組件的詳細(xì)級(jí)別顯示-1。



16.db.getMongo()

返回:當(dāng)前數(shù)據(jù)庫連接。


shell啟動(dòng)時(shí),db.getMongo()運(yùn)行。 使用此命令測(cè)試mongo shell是否與正確的數(shù)據(jù)庫實(shí)例建立連接。


17.db.getName()

返回:當(dāng)前數(shù)據(jù)庫名稱。


18.db.getProfilingLevel()(已經(jīng)過時(shí))

該方法提供了圍繞數(shù)據(jù)庫命令“ profile”的包裝器,并返回當(dāng)前的分析級(jí)別。


從1.8.4版開始不推薦使用:將db.getProfilingStatus()用于相關(guān)功能。


wang> db.getProfilingLevel()
1
wang>

19.db.getProfilingStatus()

返回:當(dāng)前profile level配置文件級(jí)別,slowOpThresholdMs設(shè)置和slowOpSampleRate設(shè)置


wang> db.getProfilingStatus()
{ "was" : 1, "slowms" : 200, "sampleRate" : 1 }

20.db.getSiblingDB()

您可以使用db.getSiblingDB()作為使用幫助程序的替代方法。 當(dāng)使用mongo shell編寫腳本(其中沒有使用幫助器)時(shí),這特別有用。 請(qǐng)考慮以下操作順序:


db1 = db.getSiblingDB('wang')
db1.test2.count()

21.db.hostInfo()

返回一個(gè)文檔,其中包含有關(guān)mongod或mongos運(yùn)行所在的基礎(chǔ)系統(tǒng)的信息。 一些返回的字段僅包含在某些平臺(tái)上。


db.hostInfo()在mongo shell中的hostInfo周圍提供了一個(gè)幫助器。Linux系統(tǒng)上db.hostInfo()的輸出將類似于以下內(nèi)容:


{
   "system" : {
          "currentTime" : ISODate(""),
          "hostname" : "",
          "cpuAddrSize" : ,
          "memSizeMB" : ,
          "memLimitMB" : ,  // Available starting in MongoDB 4.0.9 (and 3.6.13)
          "numCores" : ,
          "cpuArch" : "",
          "numaEnabled" : 
   },
   "os" : {
          "type" : "",
          "name" : "",
          "version" : ""
   },
   "extra" : {
          "versionString" : "",
          "libcVersion" : "",
          "kernelVersion" : "",
          "cpuFrequencyMHz" : "",
          "cpuFeatures" : "",
          "pageSize" : ,
          "numPages" : ,
          "maxOpenFiles" : 
   },
   "ok" : 
}

22.db.isMaster()

返回描述mongod實(shí)例角色的文檔。如果mongod是副本集的成員,則ismaster和secondary字段將報(bào)告實(shí)例是副本集的主要成員還是次要成員。


wang> db.isMaster()
{
        "ismaster" : true,
        "topologyVersion" : {
                "processId" : ObjectId("5f634f89ddce65be60f5dcef"),
                "counter" : NumberLong(0)
        },
        "maxBsonObjectSize" : 16777216,
        "maxMessageSizeBytes" : 48000000,
        "maxWriteBatchSize" : 100000,
        "localTime" : ISODate("2020-10-26T03:01:12.298Z"),
        "logicalSessionTimeoutMinutes" : 30,
        "connectionId" : 752,
        "minWireVersion" : 0,
        "maxWireVersion" : 9,
        "readOnly" : false,
        "ok" : 1
}
wang>

23.db.killOp()

終止操作ID指定的操作。 要查找操作及其相應(yīng)的ID,請(qǐng)參見db.currentOp()


注意:極其謹(jǐn)慎地終止正在運(yùn)行的操作。 僅使用db.killOp()終止由客戶端啟動(dòng)的操作,而不終止內(nèi)部數(shù)據(jù)庫操作。


從MongoDB 4.0開始db.killOp()方法可以在mongos上運(yùn)行,并且可以殺死在集群中多個(gè)分片上運(yùn)行的查詢(讀取操作)。


MongoDB killOp 案例詳解:https://mongoing.com/archives/26414


24.db.listCommands()

提供所有數(shù)據(jù)庫命令的列表。 有關(guān)這些選項(xiàng)的更廣泛的索引,請(qǐng)參見數(shù)據(jù)庫命令文檔。


25.db.logout()

結(jié)束當(dāng)前身份驗(yàn)證會(huì)話。 如果當(dāng)前會(huì)話未通過身份驗(yàn)證,則此功能無效。


26.db.printCollectionStats()

提供圍繞db.collection.stats()方法的包裝。 返回每個(gè)集合的統(tǒng)計(jì)信息,每個(gè)集合用三個(gè)連字符隔開。


注意:mongo shell中的db.printCollectionStats()不返回JSON。 使用db.printCollectionStats()進(jìn)行手動(dòng)檢查,并在腳本中使用db.collection.stats()。



27. db.resetError()(已經(jīng)過時(shí))

1.6版開始不推薦使用。重置db.getPrevError或getPrevError返回的錯(cuò)誤消息。提供圍繞resetError命令的包裝器。


28.db.runCommand() (非常有用的命令太好用了)

參考鏈接:https://docs.mongodb.com/manual/reference/command/


提供幫助程序來運(yùn)行指定的database commands。這是發(fā)出數(shù)據(jù)庫命令的首選方法,因?yàn)樗?Shell 程序和驅(qū)動(dòng)程序之間提供了一致的接口。


例子1,統(tǒng)計(jì)表中的記錄數(shù)


wang> db.runCommand({count:"test2"})
{ "n" : 100, "ok" : 1 }

帶條件的統(tǒng)計(jì)(查詢x字段的值<=20的數(shù)量)


wang> db.runCommand({count:"test2",query:{x:{$lte:20}}})
{ "n" : 21, "ok" : 1 }

參考鏈接:https://docs.mongodb.com/manual/reference/command/count/#dbcmd.count


例子2,使用distinct


wang> db.users3.find()
{ "_id" : ObjectId("5f64095aa33ac555dcb13c6d"), "birthday" : "10/13/1978", "gift" : "Happy Birthday!" }
{ "_id" : ObjectId("5f64095aa33ac555dcb13c6e"), "birthday" : "10/13/1978", "gift" : "Happy Birthday!" }
{ "_id" : ObjectId("5f64095aa33ac555dcb13c6f"), "birthday" : "10/13/1978", "gift" : "Happy Birthday!" }
wang> 
wang> db.runCommand ( { distinct: "users3", key: "birthday" } )
{ "values" : [ "10/13/1978" ], "ok" : 1 }
wang>

29.db.serverBuildInfo()

提供圍繞buildInfo數(shù)據(jù)庫命令的包裝。 buildInfo返回一個(gè)文檔,其中包含用于編譯此mongod實(shí)例的參數(shù)概述。


wang> db.serverBuildInfo()
{
        "version" : "4.4.0",
        "gitVersion" : "563487e100c4215e2dce98d0af2a6a5a2d67c5cf",
        "modules" : [ ],
        "allocator" : "tcmalloc",
        "javascriptEngine" : "mozjs",
        "sysInfo" : "deprecated",
        "versionArray" : [
                4,
                4,
                0,
                0
        ],
        "openssl" : {
                "running" : "OpenSSL 1.0.1e-fips 11 Feb 2013",
                "compiled" : "OpenSSL 1.0.1e-fips 11 Feb 2013"
        },
        "buildEnvironment" : {
                "distmod" : "rhel70",
                "distarch" : "x86_64",
                "cc" : "/opt/mongodbtoolchain/v3/bin/gcc: gcc (GCC) 8.2.0",
                "ccflags" : "-fno-omit-frame-pointer -fno-strict-aliasing -fasynchronous-unwind-tables -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -Werror -O2 -Wno-unused-local-typedefs -Wno-unused-function -Wno-deprecated-declarations -Wno-unused-const-variable -Wno-unused-but-set-variable -Wno-missing-braces -fstack-protector-strong -fno-builtin-memcmp",
                "cxx" : "/opt/mongodbtoolchain/v3/bin/g++: g++ (GCC) 8.2.0",
                "cxxflags" : "-Woverloaded-virtual -Wno-maybe-uninitialized -fsized-deallocation -std=c++17",
                "linkflags" : "-pthread -Wl,-z,now -rdynamic -Wl,--fatal-warnings -fstack-protector-strong -fuse-ld=gold -Wl,--no-threads -Wl,--build-id -Wl,--hash-style=gnu -Wl,-z,noexecstack -Wl,--warn-execstack -Wl,-z,relro -Wl,-z,origin -Wl,--enable-new-dtags",
                "target_arch" : "x86_64",
                "target_os" : "linux",
                "cppdefines" : "SAFEINT_USE_INTRINSICS 0 PCRE_STATIC NDEBUG _XOPEN_SOURCE 700 _GNU_SOURCE _FORTIFY_SOURCE 2 BOOST_THREAD_VERSION 5 BOOST_THREAD_USES_DATETIME BOOST_SYSTEM_NO_DEPRECATED BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS BOOST_ENABLE_ASSERT_DEBUG_HANDLER BOOST_LOG_NO_SHORTHAND_NAMES BOOST_LOG_USE_NATIVE_SYSLOG BOOST_LOG_WITHOUT_THREAD_ATTR ABSL_FORCE_ALIGNED_ACCESS"
        },
        "bits" : 64,
        "debug" : false,
        "maxBsonObjectSize" : 16777216,
        "storageEngines" : [
                "biggie",
                "devnull",
                "ephemeralForTest",
                "wiredTiger"
        ],
        "ok" : 1
}
wang>

30. db.serverCmdLineOpts()

返回一個(gè)文檔,該文檔報(bào)告用于啟動(dòng)mongod或mongos實(shí)例的參數(shù)和配置選項(xiàng)。有關(guān)可用的MongoDB運(yùn)行時(shí)選項(xiàng)的其他信息,請(qǐng)參閱配置文件選項(xiàng),mongod和mongos


wang> db.serverCmdLineOpts()
{
        "argv" : [
                "/usr/local/mongodb/bin/mongod",
                "-f",
                "/usr/local/mongodb/bin/mongodb.conf"
        ],
        "parsed" : {
                "config" : "/usr/local/mongodb/bin/mongodb.conf",
                "net" : {
                        "bindIp" : "*",
                        "maxIncomingConnections" : 5000,
                        "port" : 27017
                },
                "operationProfiling" : {
                        "mode" : "slowOp",
                        "slowOpThresholdMs" : 200
                },
                "processManagement" : {
                        "fork" : true,
                        "pidFilePath" : "/usr/local/mongodb/data/mongodb.pid"
                },
                "security" : {
                        "authorization" : "enabled"
                },
                "storage" : {
                        "dbPath" : "/usr/local/mongodb/data/db",
                        "directoryPerDB" : true,
                        "engine" : "wiredTiger",
                        "journal" : {
                                "enabled" : true
                        },
                        "syncPeriodSecs" : 60,
                        "wiredTiger" : {
                                "collectionConfig" : {
                                        "blockCompressor" : "snappy"
                                },
                                "engineConfig" : {
                                        "cacheSizeGB" : 2,
                                        "directoryForIndexes" : true,
                                        "journalCompressor" : "snappy",
                                        "statisticsLogDelaySecs" : 0
                                },
                                "indexConfig" : {
                                        "prefixCompression" : true
                                }
                        }
                },
                "systemLog" : {
                        "destination" : "file",
                        "logAppend" : true,
                        "logRotate" : "rename",
                        "path" : "/usr/local/mongodb/data/logs/mongod.log",
                        "timeStampFormat" : "iso8601-local",
                        "traceAllExceptions" : false,
                        "verbosity" : 0
                }
        },
        "ok" : 1
}
wang>

31.db.serverStatus()

返回一個(gè)文檔,概述數(shù)據(jù)庫過程的狀態(tài)。該命令為數(shù)據(jù)庫命令serverStatus提供了包裝。


例子1.返回所有的狀態(tài)信息


db.serverStatus()

例子2.返回鎖信息 R:表示全局讀鎖 W:全局寫鎖 r:某個(gè)數(shù)據(jù)庫讀鎖 w:某個(gè)數(shù)據(jù)庫寫鎖


db.serverStatus().locks

例子3.連接數(shù)信息


db.serverStatus().connections

32. db.setLogLevel()

為log messages設(shè)置單個(gè)詳細(xì)級(jí)別。詳細(xì)級(jí)別的范圍是0到5,0是 MongoDB 的默認(rèn)日志詳細(xì)級(jí)別,其中包含Informational條消息。1~5 是調(diào)試級(jí)別,會(huì)記錄客戶端所有的完整請(qǐng)求。


注意:從版本4.2開始,MongoDB在日志消息中包括調(diào)試詳細(xì)級(jí)別(1-5)。 例如,如果詳細(xì)級(jí)別為2,則MongoDB記錄D2。 在以前的版本中,MongoDB日志消息僅將D指定為Debug級(jí)別。


例子1:該操作將默認(rèn)詳細(xì)程度設(shè)置為1


db.setLogLevel(1)


查詢?nèi)罩驹敿?xì)等級(jí)的命令


wang> db.getLogComponents()
{
        "verbosity" : 1,
        "accessControl" : {
                "verbosity" : -1
        },
        "command" : {
                "verbosity" : -1
        },
        "control" : {
                "verbosity" : -1
        },
        "executor" : {
                "verbosity" : -1
        },
        "geo" : {
                "verbosity" : -1
        },
        "index" : {
                "verbosity" : -1
        },
        "network" : {
                "verbosity" : -1,
                "asio" : {
                        "verbosity" : -1
                },
                "bridge" : {
                        "verbosity" : -1
                },
                "connectionPool" : {
                        "verbosity" : -1
                }
        },
        "query" : {
                "verbosity" : -1
        },
        "replication" : {
                "verbosity" : -1,
                "election" : {
                        "verbosity" : -1
                },
                "heartbeats" : {
                        "verbosity" : -1
                },
                "initialSync" : {
                        "verbosity" : -1
                },
                "rollback" : {
                        "verbosity" : -1
                }
        },
        "sharding" : {
                "verbosity" : -1,
                "shardingCatalogRefresh" : {
                        "verbosity" : -1
                },
                "migration" : {
                        "verbosity" : -1
                }
        },
        "storage" : {
                "verbosity" : -1,
                "recovery" : {
                        "verbosity" : -1
                },
                "journal" : {
                        "verbosity" : -1
                }
        },
        "write" : {
                "verbosity" : -1
        },
        "ftdc" : {
                "verbosity" : -1
        },
        "tracking" : {
                "verbosity" : -1
        },
        "transaction" : {
                "verbosity" : -1
        },
        "test" : {
                "verbosity" : -1
        }
}
wang>

例子2,以下操作將systemLog.component.storage.journal.verbosity更新為2:


db.setLogLevel(2, "storage.journal" )

33.db.setProfilingLevel()

設(shè)置Profiling捕捉慢查詢,類似于MySQL的slow log, mongodb可以監(jiān)控所有慢的以及不慢的查詢。這個(gè)工具就是Profiling,該工具在運(yùn)行的實(shí)例上收集有關(guān)MongoDB的 寫操作,游標(biāo),數(shù)據(jù)庫命令等,可以在數(shù)據(jù)庫級(jí)別開啟該工具,也可以在實(shí)例級(jí)別開啟。該工具會(huì)把收集到的所有都寫入到system.profile集合中,該集合是一個(gè)capped collection。


0:關(guān)閉,不收集任何數(shù)據(jù)。
1:收集慢查詢數(shù)據(jù),默認(rèn)是100毫秒
2:收集所有數(shù)據(jù)

例子1,設(shè)置日志級(jí)別為1,慢查詢閾值為20毫秒,采樣率為0.42


db.setProfilingLevel(1, { slowms: 20, sampleRate: 0.42 })

查看Profiling的級(jí)別


db.getProfilingStatus()

例子2,禁用Profiler并設(shè)置慢速操作閾值和采樣率


db.setProfilingLevel(0, { slowms: 20, sampleRate: 0.42 })

34.db.shutdownServer()

干凈安全地關(guān)閉當(dāng)前mongod或mongos進(jìn)程。 您必須對(duì)admin數(shù)據(jù)庫發(fā)出db.shutdownServer()操作


例子1,Shut down a mongod


db.getSiblingDB("admin").shutdownServer()

例子2,F(xiàn)orce Shut Down a mongod


db.getSiblingDB("admin").shutdownServer({ "force" : true })

例子3,Shut Down a Primary mongod With Longer Timeout


db.getSiblingDB("admin").shutdownServer({ "timeoutSecs": 60 })

35.db.stats()

返回反映單個(gè)數(shù)據(jù)庫使用狀態(tài)的統(tǒng)計(jì)信息。


下面的示例將返回的值轉(zhuǎn)換為千字節(jié):


wang> db.stats(1024)
{
        "db" : "wang",
        "collections" : 21,
        "views" : 0,
        "objects" : 211,
        "avgObjSize" : 1789.744075829384,
        "dataSize" : 368.78515625,
        "storageSize" : 660,
        "indexes" : 20,
        "indexSize" : 452,
        "totalSize" : 1112,
        "scaleFactor" : 1024,
        "fsUsedSize" : 25937044,
        "fsTotalSize" : 308016184,
        "ok" : 1
}

36.db.watch()

僅適用于副本集和分片群集


本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請(qǐng)?jiān)谖闹凶⒚鱽碓醇白髡呙帧?/p>

免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com