本文介绍: cursor指向查询结果游标,通过游标向下移动,获得下一条查询结果。当查询效率高,获取查询结果仅仅需要少量的资源时,cursor返回结果的速度快。而查询速度慢,占用cpu内存资源多,cursor返回结果的速度慢。就像使用网络观看视频一样,视频在一秒一秒的播放,加载流畅时,观众就可以安心舒适的观看。而加载缓慢时,观众可能选择切换视频资源关闭当前观看视频的这个操作,就类似mongodb数据库killCusors.

        cursor指向查询结果的游标,通过游标向下移动,获得下一条查询结果。MongoDB分批向用户返回数据结果。通过游标的移动, mongodb确定当前返回结果的位置,是否要加载更多数据内存当中。cursor有默认的超时时间超时cursor自动停止。当然,用户可以手动使用killCursors命令,停止未完成的cursor.

killCursors功能

        停止指定游标或某个集合游标

        各种Mongodb连接工具基于killCursors命令实现游标的部分操作应用程序中,通常应用不会直接调用killCursors命令,而是数据库管理开发人员,来运行killCurors命令,停止掉对数据库性能产生影响或长时间运行cursor。

        为了减少影响,降低风险执行killCursors命令必须在当前集合所在的数据库执行

语法

db.runCommand({    
	killCursors: <collection&gt;,    
  cursors: [<cursor id1&gt;, ...],    
  comment: <any&gt;
})

        其中,使用killCursors指定本次操作针对集合名称字段cursors包含cursor id数组comment是可选字段用户对本次操作的一些备注和说明。可以是BSON类型中的任何一种数据类型添加备注说明时,可以在下面的三个位置查看

用户权限

        使用killCursors时,用户需要拥有相应的权限

停止当前用户创建游标

停止其他用户创建的游标

        用户需要有killAnyCursor权限

应用举例

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")]
})

原文地址:https://blog.csdn.net/wilsonzane/article/details/134672715

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_5861.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注