MongoDB 有一个叫 Tailable Cursors的特性,它类似于tail -f 命令,你在一个Capped Collection上面执行查询操作,当操作完成后,你可以不关闭返回的数据Cursor,并持续地从中读出新加入的数据。

在高写入的Capped Collection上,索引不可用时,可使用Tailable Cursors。例如,MongoDB复制使用了Tailable Cursors来获取Primary的尾oplog日志。

考虑以下与Tailable Cursors相关的行为:

  • Tailable Cursors不使用索引,并以自然排序返回文档。

  • 因为Tailable Cursors不使用索引,查询的初始扫描非常耗性能;但是,游标初始化完后,随后获取到的新增加的文档是很快速的。

  • Tailable Cursors如果遇到以下情况之一将会僵死或无效:

    • 查询无匹配结果。

    • 游标在集合尾部返回文档,随后应用程序删除了该文档。

僵死的游标id为0。

DBQuery.Option.awaitData

在使用TailableCursor时,此参数会在数据读尽时先阻塞一小段时间后再读取一次并进行返回。

跟踪oplog的示例

1
2
3
4
5
6
use local
var cursor = db.oplog.rs.find({"op" "u""ns" "MyDB.Product"},{"ts": 1, "o2._id": 1}).addOption(DBQuery.Option.tailable).addOption(DBQuery.Option.awaitData);
while(cursor.hasNext()){
    var doc = cursor.next();
    printjson(doc);
};


2.6版的游标方法:
cursor.addOption()
https://docs.mongodb.com/v2.6/reference/method/cursor.addOption/

3.2版的游标方法:
cursor.tailable()
https://docs.mongodb.com/manual/reference/method/cursor.tailable/

本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1789038 ,如需转载请自行联系原作者

MongoDB Tailable Cursors相关推荐

  1. 可尾游标(Tailable Cursors)

    进入MongoDB中文手册(4.2版本)目录 默认情况下,当客户端用尽游标中的所有结果时,MongoDB将自动关闭游标.然而,对于固定集合(Capped Collections),你可以使用可尾游标的 ...

  2. 【转】MongoDB资料汇总专题

    1.MongoDB是什么 MongoDB介绍PPT分享 MongoDB GridFS介绍PPT两则 初识 MongoDB GridFS MongoDB GridFS 介绍 一个NoSQL与MongoD ...

  3. 【MongoDB】固定集合(Capped Collections)

    本章内容: 概述 特性 限制和建议 使用步骤 一.概述 固定集合是大小固定的集合,它们支持高吞吐量操作,这些操作根据插入文档和按照插入顺序检索(retrieve)文档.固定集合的工作方式类似于循环缓存 ...

  4. 跨域的知识和解决方法

    1.https://segmentfault.com/a/1190000000709909 2.https://blog.csdn.net/qq_38128179/article/details/84 ...

  5. MongoDB 新功能介绍-Change Streams

    女主宣言 MongoDB 3.6已经GA有一段时间,网络上对于该版本新特性的详细介绍文章比较少为此借机会对部分新特性做一个相对详细的介绍.基于早期MongoDB版本实现如跨平台数据同步.消息通知.ET ...

  6. mongo实现消息队列

    2019独角兽企业重金招聘Python工程师标准>>> 使用mongo来构建一个简单的消息队列 MongoDB 有一个叫 Tailable Cursors的特性,它类似于tail - ...

  7. mangodb collection level operations

    2019独角兽企业重金招聘Python工程师标准>>> collection – Collection level operations Collection level utili ...

  8. MongoDB副本集同步原理

    MongoDB的同步原理,官方文档介绍的比较少,网上资料也不是太多,下面是结合官方文档.网上资料和测试时候的日志,整理出来的一点东西. 因为MongoDB的每个分片也是副本集,所以只需要搞副本集的同步 ...

  9. MongoDB Cursor Methods

    这个就是对find方法的补充 Name Description cursor.addOption() Adds special wire protocol flags that modify the ...

最新文章

  1. 在CentOS 6.9 x86_64上开启nginx 1.12.2的stub_status模块(ngx_http_stub_status_module)监控
  2. 人脸识别中Softmax-based Loss的演化史
  3. Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable
  4. Coursera-AndrewNg(吴恩达)机器学习笔记——第一周
  5. R_ggplot2基础(一)
  6. c语言 格式字符,c语言的格式符
  7. Centos 操作系统常用log日志
  8. 51单片机学习路程(一)
  9. 中国计算机大会CNCC【笔记】
  10. 微信从原版到现在所有界面图片_微信进入界面的图片有什么含义
  11. 三极管Vbeo、Vceo的介绍
  12. 高漫数位板1060PRO 8192级的驱动下载与安装
  13. java jxl 写 excel文件_Java使用jxl包写Excel文件适合列宽实现
  14. 测绘——如何在win10环境下安装CAD2006+CASS7.0
  15. 用stitching_detailed拼接图片失败,原因分析(待补充)
  16. 关于windows 10开机自动修复的解决办法
  17. 试用期、加班时间、加班补偿——职场常见知识《劳动法》
  18. 麒麟系统开发笔记(一):国产麒麟系统搭建开发环境之虚拟机安装
  19. win7,如何快速显示桌面
  20. cpc卡内计费信息异常包括_CPC卡精确计费方案

热门文章

  1. C# IDE SharpDevelop的一些缺陷
  2. Oracle主机变量锚定、游标变量
  3. 2to3:python2自动转python3
  4. 搭建fcm中转服务器,FCM服务器实现
  5. 数据库系统概论(1)
  6. python将汉字转为拼音字母_科学网—[转载]python中文汉字转拼音 - 陈明杰的博文...
  7. Drupal框架使用中...
  8. Drupal - 制作首页
  9. 2015年找工作总结
  10. 负数在计算机中表示方法