如何将带有awaitdata的可尾游标移动到末尾,以便我只获得新的更新

2023-12-07

我正在尝试使用 node.js 驱动程序查看 MongoDB oplog,理论上它是有效的,但它的启动时间相当长,因为它似乎正在扫描整个集合。我在 MongoDB 文档中找到了这个:

  • 由于可尾游标不使用索引,因此查询的初始扫描可能会很昂贵;但是,在最初耗尽光标之后,后续对新添加的文档的检索是廉价的。

有没有办法快速“耗尽”光标以开始拖尾?在我看来,Meteor 的人已经解决了这个问题,但我很难通过阅读他们的代码来理解其中的区别。这就是我目前所拥有的:

var cursorOptions = {
    tailable: true,
    awaitdata: true,
    numberOfRetries: -1
};

var oplogStream = oplogDb.collection('oplog.rs').find(
    {
        ns: { $regex : /^dbname\./ },
        op: "i",
        ts: { $gt: lastEntry.ts } 
    },
    cursorOptions
).sort({$natural: -1}).stream();

oplogStream.on('data', publishDocument);

oplogStream.on('end', function() {
    log.error("received unexpected end event from oplog watcher.");
});

太好了,提问后 5 分钟我就找到了答案。我会将其发布在这里以供将来参考:

你必须添加oplogReplay标志并将其设置为true. This 仅有效如果您还对ts场地。我之前在没有设置范围的情况下尝试过这个,但它什么也没做。当您添加下面突出显示的这一行时,上面的代码将起作用:

var cursorOptions = {
  tailable: true,
  awaitdata: true,
  oplogReplay: true, // add this line
  numberOfRetries: -1
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将带有awaitdata的可尾游标移动到末尾,以便我只获得新的更新 的相关文章

  • 如何使用 java 执行此 MongoDB 查询?

    我必须写一个简单的MongoDB查询使用java但我做不到 mongo 查询如下所示 db yourCollection find where this startDate lt this endDate 我必须使用以下命令编写上述查询Qu
  • Meteor 独特客户端集合的发布/订阅策略

    使用 Meteor 我想知道如何最好地处理共享相同服务器端数据库集合的不同客户端集合 考虑以下示例 我有一个User集合 在我的客户端我有一个好友用户列表我有一个搜索功能 可以对整个用户数据库执行查询 返回一个与查询匹配的用户名列表 在发布
  • Mongo:按键查询一层深

    是否可以在 Mongo 查询中使用 存在 之类的内容来根据 ID 返回此记录 就像是选择 ids 包含密钥 123456 的位置 department Digging ids 123456 color blue 123457 color r
  • Morphia - 未在 dbObj 中找到定义的类

    我有一个相当有趣的问题 当尝试从 Mongo 实例加载模型时 Morphia 会抛出以下错误 22 17 13 WARN Class not found defined in dbObj java lang ClassNotFoundExc
  • mongodb - 一个集合中的许多文档与多个集合中的许多文档

    我使用 mongodb 作为数据库存储 我的网络应用程序必须收集用户响应 用户响应是 mongodb 中的文档 或 sql 中的一行 一个文档的长度大约是10 200 用户响应被分类 仅到一个类别 每个类别的用户响应数在100 5000之间
  • Mongodb聚合,如何按间隔标准对文档进行计数?

    我的 MongoDB 文档如下所示 StatCode LoadTime 例如 数据可能如下所示 id StatCode LoadTime 1 200 0 345 2 200 0 234 3 200 0 396 4 200 1 234 5 2
  • 我可以通过mongo shell重启mongodb服务器吗?

    我可以通过 mongo CLI 客户端重新启动 MongoDB 服务器吗 您无法从客户端停止和启动 重新启动 它 正如 i kimiko 已经提到的 你可以在客户端上关闭它db shutdownServer 通过 mongo shell数据
  • MongoDB - 编辑器变量 - MongoDB shell - Windows 7

    EDITOR 变量功能真的可以在 Windows 7 上使用吗 我正在读一篇文章 说一旦我们设置了 EDITOR 变量在 mongorc js 中 我们只需在 shell 中输入 编辑变量名 and var name将被加载到编辑器中 在我
  • 使用mongodb聚合框架按数组长度分组

    我有一个看起来像这样的集合 id id0 name saved things id id1 name saved things id id2 name saved things etc 我想使用 mongodb 的聚合框架来得出一个直方图结
  • 如何获取 bson 文档的大小(以字节为单位)

    bson文档的size 函数返回的int值是字节数吗 无法找到此 API 的详细信息 如何获取 bson 文档的大小 以字节为单位 这是我的代码 import org bson Document MongoDatabase db Mongo
  • 如何在Mongodb java驱动程序中编写多个group by id字段

    在下面的查询中 group id success success responseCode responseCode label label max timeStamp timeStamp 1 count responseCode sum
  • 检索 mongoDB 文档中的空数组或 null

    我有我学校所有学生的收藏 每个文档都有一个sports列出每个学生从事的运动的数组属性 但该属性可能显示为sports or sports null或者根本不出现 如何检索属于上述三种情况之一的所有文件 如何向只有一项运动但未表示为数组的学
  • 带有卷的 docker 中的 Mongo db 持久化

    我正在尝试创建一个 mongo 数据库容器 但无法使数据持久化 这是我的 docker compose yml version 3 2 services mongodb image mongo 2 4 command smallfiles
  • Mongodb 限制聚合查询中的数组

    我正在尝试编写一个查询来返回每个类别中的前 X 个术语 例如前 5 个 前 10 个等 每个术语都有一个关联的类别 并且基于另一个术语的帮助堆栈溢出问题 https stackoverflow com questions 25666187
  • 如何从数组中删除重复的条目?

    在下面的示例中 Algorithms in C 出现两次 The unset修饰符可以删除特定字段 但如何从字段中删除条目 id ObjectId 4f6cd3c47156522f4f45b26f favorites books Algor
  • Mongoose.js instance.save() 回调未触发

    var mongo require mongoose var connection mongo createConnection mongodb 127 0 0 1 test connection on error function err
  • 是否可以提高 Mongoexport 速度?

    我有一个 1 3 亿行的 MongoDB 3 6 2 0 集合 它有几个简单的字段和 2 个带有嵌套 JSON 文档的字段 数据以压缩格式 zlib 存储 我需要尽快将其中一个嵌入字段导出为 JSON 格式 然而 mongoexport 需
  • 使用 PHP 从 Mongo 解码 JSON

    我已经看过这个线程 PHP 解码嵌套 JSON https stackoverflow com questions 3555335 php decode nested json并没有设法用它来解决我的问题 我目前正在从 Mongo 获取 J
  • Mongodb MapReduce 选择最新日期

    我似乎无法让我的 MapReduce 缩减功能正常工作 这是我的地图功能 function Map day Date UTC this TimeStamp getFullYear this TimeStamp getMonth this T
  • 使用 Mongoose 无法找到按 ObjectId 搜索的文档

    Campaign find client id req param client id error campaigns gt if error response error error message else for campaign i

随机推荐

  • 在 PHP 中用如此命名的变量替换括号内的文本

    我想替换方括号中的所有字符串 以及从名为该字符串的数组中随机选择的项目 它非常类似于这个问题 但有一点不同 因为我想用名为该数组的字符串替换不同括号的内容 一个例子应该会让这一点更清楚一些 所以说我已经拿到了字符串 This is a ve
  • 获取同一html中隐藏字段的值? [复制]

    这个问题在这里已经有答案了 我想得到的值hidden我的 html 中的字段
  • 如何从注入同一程序的另一个 .dll 调用函数?

    我的问题确实在上面 但是我将在下面提供更多信息 我有一个程序 它首先获取我的 假 d3d9 dll 然后将该DLL加载到我正在进行逆向工程的游戏中 一段时间后 dll 被加载 以及所有其他游戏依赖项 我想注入我的 DLL 它将完成逆向工程的
  • 代表的目的[重复]

    这个问题在这里已经有答案了 复制 事件和委托的区别及其各自的应用 代表的优势是什么 我在哪里使用代表 我想知道代表们的目的是什么 我没怎么用过它们 也想不出什么东西 在我的课程中 写到委托是所有符合其签名的方法的蓝图 此外 您可以向一个委托
  • 以不同的名称循环保存图像

    我在循环保存裁剪后的图像时遇到问题 我的代码 def run self image file print image file cap cv2 VideoCapture image file while cap isOpened ret f
  • 模板化成员函数 typedef 无法编译

    include
  • Sagepay Forms 加密方法 经典 ASP

    我有一个使用 Classic ASP 开发的定制购物车 我需要将其与 SagePay Forms 集成 我正在努力寻找任何记录的 ASP 代码示例 说明如何加密发送到 Sagepay 的订单数据 做过这件事的人能给我指出正确的方向吗 有一些
  • MongoDB中如何对2个字段的总和进行排序

    我有这个文件 id 59b804e1ee8a4071a5ea3fcc description description imagepath https example com type label downvotes 25 upvotes 1
  • 为 git-diff 输出中的空白着色

    关于代码格式 我是纯粹主义者 我经常删除不必要的空格 仅包含 ws 的行 行尾的 ws 等 我什至将 vim 设置为显示那种红色的线条 我的问题是 使用 git diff 我经常看到这样的东西 else else 即使我有 git diff
  • 我可以将 mono64 与 Visual Studio for Mac 结合使用吗?

    我是 Mono 开发 但不是 NET 开发 的新手 下载了 Visual Studio for Mac 并尝试从 Alea GPU 运行示例解决方案 它抱怨它需要 mono64 但我没有看到像在 Windows 中那样选择 64 位架构的选
  • C语言中的空函数指针是什么意思?

    假设我们有一个函数指针 void func0 void 其还定义为 void func0 void printf 0 n 但是 假设在某些时候我们尝试以某种方式访问 函数指针 那么当我进入代码时 如果 MS VS 调试器显示 func0 实
  • 取消格式化磁盘大小字符串

    有什么方法可以转换字符串吗1K to 1000 1M to 1000000等等 用一个 Bash 命令 我想避免成为第 100 万第 30 个人为此创建超过 10 行或超过 100 个字符的单行 hack 就像是iso2int 5MB Ed
  • Hibernate使用Oracle序列时不生成标识符

    我有以下映射 Entity SequenceGenerator name sacpSequenceGenerator sequenceName SACP SEQ public class Sacp private Integer id Id
  • 使用类成员函数作为回调?

    我需要将一个成员函数传递给第三方外部方法 box self intersection d mycallback The box self intersection d是第三方外部静态方法 我无法修改它 mycallback是我想将其传递到的
  • 在 IE7 中垂直居中块

    我试图在 IE7 中垂直居中一个块 如果可能的话 也可以在 IE6 中 让我弄清楚一件事 我不是垂直居中实际元素 而是元素内的文本 这是我的 CSS 和 HTML 适用于 IE8 及以上版本 但不适用于以下版本 a display tabl
  • 仅当第一个非空 android 时才关注第二个编辑文本

    目前我有两个编辑文本 假设我想对空编辑文本检查进行验证 运行时验证的更好方法是什么 我的代码是 final EditText ev1 EditText findViewById R id editText1 final EditText e
  • MapFragment Google Maps API v2 内存不足错误/内存泄漏

    在过去的几天里 我读了很多类似的帖子 但没有一个专门回答这个问题 在使用混合地图进行大约 2 分钟的激进地图平移和缩放后 我开始遇到 OOM 问题 该应用程序似乎还在崩溃后保留了内存 因为在第一次失败后达到 OOM 所需的时间更少 我将代码
  • 单实例并在系统托盘中通知

    我正在开发该应用程序 C 2 0 我已经在其中实现了单个实例 一切安好 如果我再次运行该应用程序 它会显示消息框 提示 实例已在运行 实际上我不想通过消息框显示消息 我想使用已运行实例的气球提示来显示此消息 它在系统托盘中有通知图标 我怎样
  • 推断精确值打字稿

    如何让打字稿从传递的参数推断返回值 const toggle
  • 如何将带有awaitdata的可尾游标移动到末尾,以便我只获得新的更新

    我正在尝试使用 node js 驱动程序查看 MongoDB oplog 理论上它是有效的 但它的启动时间相当长 因为它似乎正在扫描整个集合 我在 MongoDB 文档中找到了这个 由于可尾游标不使用索引 因此查询的初始扫描可能会很昂贵 但