Mongodb如何使用killCursors停止運行的cursor
cursor指向查詢結果的游標,通過游標向下移動,獲得下一條查詢結果。MongoDB分批向用戶返回數(shù)據(jù)結果。通過游標的移動, mongodb確定當前返回結果的位置,是否要加載更多數(shù)據(jù)到內(nèi)存當中。cursor有默認的超時時間, 超時后cursor會自動停止。當然,用戶也可以手動使用killCursors命令,停止未完成的cursor.
killCursors功能
停止指定的游標或某個集合的游標。
各種Mongodb連接工具,基于killCursors命令,實現(xiàn)游標的部分操作。應用程序中,通常應用不會直接調(diào)用killCursors命令,而是數(shù)據(jù)庫管理或開發(fā)人員,來運行killCurors命令,停止掉對數(shù)據(jù)庫性能產(chǎn)生影響或長時間運行的cursor。
為了減少影響,降低風險,執(zhí)行killCursors命令必須在當前集合所在的數(shù)據(jù)庫中執(zhí)行。
語法
db.runCommand({
killCursors: <collection>,
cursors: [<cursor id1>, ...],
comment: <any>
})其中,使用killCursors指定本次操作針對的集合名稱。 字段cursors包含cursor id數(shù)組。comment是可選字段,用戶對本次操作的一些備注和說明??梢允荁SON類型中的任何一種數(shù)據(jù)類型。添加備注說明時,可以在下面的三個位置查看
- Mongodb日志中,attr.command.cursor.comment字段
- Database profile輸出的command.comment字段
- currentOp輸出的command.comment字段
用戶權限
使用killCursors時,用戶需要擁有相應的權限。
- 4.2及以后得版本,當前用戶有權限停止自己創(chuàng)建的游標。當用戶使用查詢語句創(chuàng)建游標時,游標即與當前用戶建立關聯(lián)關系
- 4.0及以前版本,用戶需要有killCursors權限,才能停掉自己創(chuàng)建的游標。同樣,與4.2版本想用,用戶使用查詢語句創(chuàng)建游標時,游標即與當前用戶建立關聯(lián)關系。
停止其他用戶創(chuàng)建的游標
用戶需要有killAnyCursor權限
應用舉例
創(chuàng)建游標
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停止游標
use test
db.runCommand({
killCusors: "restaurants",
cusors: [NumberLong("18314637080")]
})到此這篇關于Mongodb使用killCursors停止運行的cursor的文章就介紹到這了,更多相關Mongodb使用killCursors停止運行的cursor內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
利用golang驅(qū)動操作MongoDB數(shù)據(jù)庫的步驟
這篇文章主要給大家介紹了關于如何利用golang驅(qū)動操作MongoDB數(shù)據(jù)庫的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
mongodb增刪改查詳解_動力節(jié)點Java學院整理
這篇文章主要介紹了mongodb增刪改查詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08
MongoDB中的主從同步配置和mongod相關啟動命令講解
這篇文章主要介紹了MongoDB中的主從同步配置和mongod相關啟動命令講解,文中也羅列了很多其他常用的mongod命令參數(shù),需要的朋友可以參考下2016-03-03
MongoDB的mongo shell常用操作方法及操作腳本筆記
mongo shell即相當于SQL語句在關系型數(shù)據(jù)庫中的作用,MongoDB使用JavaScript作為shell操作命令,這里我們就來整理MongoDB的mongo shell常用操作方法及操作腳本筆記2016-07-07

