Mongodb如何使用killCursors停止運(yùn)行的cursor
cursor指向查詢結(jié)果的游標(biāo),通過(guò)游標(biāo)向下移動(dòng),獲得下一條查詢結(jié)果。MongoDB分批向用戶返回?cái)?shù)據(jù)結(jié)果。通過(guò)游標(biāo)的移動(dòng), mongodb確定當(dāng)前返回結(jié)果的位置,是否要加載更多數(shù)據(jù)到內(nèi)存當(dāng)中。cursor有默認(rèn)的超時(shí)時(shí)間, 超時(shí)后cursor會(huì)自動(dòng)停止。當(dāng)然,用戶也可以手動(dòng)使用killCursors命令,停止未完成的cursor.
killCursors功能
停止指定的游標(biāo)或某個(gè)集合的游標(biāo)。
各種Mongodb連接工具,基于killCursors命令,實(shí)現(xiàn)游標(biāo)的部分操作。應(yīng)用程序中,通常應(yīng)用不會(huì)直接調(diào)用killCursors命令,而是數(shù)據(jù)庫(kù)管理或開(kāi)發(fā)人員,來(lái)運(yùn)行killCurors命令,停止掉對(duì)數(shù)據(jù)庫(kù)性能產(chǎn)生影響或長(zhǎng)時(shí)間運(yùn)行的cursor。
為了減少影響,降低風(fēng)險(xiǎn),執(zhí)行killCursors命令必須在當(dāng)前集合所在的數(shù)據(jù)庫(kù)中執(zhí)行。
語(yǔ)法
db.runCommand({ killCursors: <collection>, cursors: [<cursor id1>, ...], comment: <any> })
其中,使用killCursors指定本次操作針對(duì)的集合名稱。 字段cursors包含cursor id數(shù)組。comment是可選字段,用戶對(duì)本次操作的一些備注和說(shuō)明??梢允荁SON類型中的任何一種數(shù)據(jù)類型。添加備注說(shuō)明時(shí),可以在下面的三個(gè)位置查看
- Mongodb日志中,attr.command.cursor.comment字段
- Database profile輸出的command.comment字段
- currentOp輸出的command.comment字段
用戶權(quán)限
使用killCursors時(shí),用戶需要擁有相應(yīng)的權(quán)限。
- 4.2及以后得版本,當(dāng)前用戶有權(quán)限停止自己創(chuàng)建的游標(biāo)。當(dāng)用戶使用查詢語(yǔ)句創(chuàng)建游標(biāo)時(shí),游標(biāo)即與當(dāng)前用戶建立關(guān)聯(lián)關(guān)系
- 4.0及以前版本,用戶需要有killCursors權(quán)限,才能停掉自己創(chuàng)建的游標(biāo)。同樣,與4.2版本想用,用戶使用查詢語(yǔ)句創(chuàng)建游標(biāo)時(shí),游標(biāo)即與當(dāng)前用戶建立關(guān)聯(lián)關(guān)系。
停止其他用戶創(chuàng)建的游標(biāo)
用戶需要有killAnyCursor權(quán)限
應(yīng)用舉例
創(chuàng)建游標(biāo)
use test db.runCommand({ find: "resturants", filter: {stars: 5}, projection: { name:1, rating: 1, address:1 }, sort: { name: 1}, batchSize: 5 }) //返回 { "waitedMS" : NumberLong(0), "cursor" : { "firstBatch" : [{ "_id" : ObjectId("57506d63f578028074723dfd"), "name" : "Cakes and more" },{ "_id" : ObjectId("57506d63f578028074723e0b"), "name" : "Pies and things" },{ "_id" : ObjectId("57506d63f578028074723e1d"), "name" : "Ice Cream Parlour" },{ "_id" : ObjectId("57506d63f578028074723e65"), "name" : "Cream Puffs" },{ "_id" : ObjectId("57506d63f578028074723e66"), "name" : "Cakes and Rolls" }], "id" : NumberLong("18314637080"), "ns" : "test.restaurants" }, "ok" : 1 }
使用killCursors停止游標(biāo)
use test db.runCommand({ killCusors: "restaurants", cusors: [NumberLong("18314637080")] })
到此這篇關(guān)于Mongodb使用killCursors停止運(yùn)行的cursor的文章就介紹到這了,更多相關(guān)Mongodb使用killCursors停止運(yùn)行的cursor內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用golang驅(qū)動(dòng)操作MongoDB數(shù)據(jù)庫(kù)的步驟
這篇文章主要給大家介紹了關(guān)于如何利用golang驅(qū)動(dòng)操作MongoDB數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11mongodb中根據(jù)時(shí)間過(guò)濾進(jìn)行查詢的操作方法
這篇文章主要介紹了mongodb中簡(jiǎn)單的根據(jù)時(shí)間過(guò)濾進(jìn)行查詢,文末補(bǔ)充介紹了如何根據(jù)日期過(guò)濾/查找MongoDB中的記錄,結(jié)合實(shí)例給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05mongodb增刪改查詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了mongodb增刪改查詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08MongoDB中的主從同步配置和mongod相關(guān)啟動(dòng)命令講解
這篇文章主要介紹了MongoDB中的主從同步配置和mongod相關(guān)啟動(dòng)命令講解,文中也羅列了很多其他常用的mongod命令參數(shù),需要的朋友可以參考下2016-03-03centos8安裝MongoDB的詳細(xì)過(guò)程
MongoDB由MongoDB Inc開(kāi)發(fā),并根據(jù)SSPL(服務(wù)器端公共許可證)進(jìn)行分發(fā),是一個(gè)開(kāi)源,跨平臺(tái),面向文檔的數(shù)據(jù)庫(kù)管理系統(tǒng),本文重點(diǎn)給大家介紹centos8安裝MongoDB的詳細(xì)過(guò)程,感興趣的朋友一起看看吧2021-10-10MongoDB按時(shí)間分組操作實(shí)戰(zhàn)
MongoDB支持使用聚合操作來(lái)統(tǒng)計(jì)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MongoDB按時(shí)間分組操作的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05MongoDB分片在部署與維護(hù)管理中常見(jiàn)的事項(xiàng)總結(jié)大全
分片(sharding)是指將數(shù)據(jù)拆分,將其分散存放在不同的機(jī)器上的過(guò)程。下面這篇文章主要給大家總結(jié)介紹了關(guān)于MongoDB分片在部署與維護(hù)管理中常見(jiàn)事項(xiàng)的相關(guān)資料,文中通過(guò)圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-09-09MongoDB的mongo shell常用操作方法及操作腳本筆記
mongo shell即相當(dāng)于SQL語(yǔ)句在關(guān)系型數(shù)據(jù)庫(kù)中的作用,MongoDB使用JavaScript作為shell操作命令,這里我們就來(lái)整理MongoDB的mongo shell常用操作方法及操作腳本筆記2016-07-07