Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取收集操作序列MongoDB_Mongodb_Mongodb Oplog - Fatal编程技术网

获取收集操作序列MongoDB

获取收集操作序列MongoDB,mongodb,mongodb-oplog,Mongodb,Mongodb Oplog,我需要通过守护进程获取运行时的收集操作序列,以便将其写入类似于MessageBroker的系统。从指定位置读取历史记录的必要能力 也许我可以通过阅读opLog来解决这个问题 使用opLog是正确的解决方案吗 oplog是否包含所有数据库的记录,而不是按集合分割 使用MongoDB v4.2 使用opLog是正确的解决方案吗 oplog格式是内部的,旨在支持复制。作为一种内部格式,它可能会在主要服务器版本之间发生更改,而不是直接使用 您应该改为使用基于oplog的,并允许订阅集合、数据库或部署级别

我需要通过守护进程获取运行时的收集操作序列,以便将其写入类似于MessageBroker的系统。从指定位置读取历史记录的必要能力

也许我可以通过阅读opLog来解决这个问题

  • 使用opLog是正确的解决方案吗
  • oplog是否包含所有数据库的记录,而不是按集合分割
  • 使用MongoDB v4.2

    使用opLog是正确的解决方案吗

    oplog格式是内部的,旨在支持复制。作为一种内部格式,它可能会在主要服务器版本之间发生更改,而不是直接使用

    您应该改为使用基于oplog的,并允许订阅集合、数据库或部署级别上的数据更改的。与直接oplog访问不同,变更流具有文档化的API,可以通过访问控制进行限制,可以对流输出执行一些过滤和修改,并且可以扩展以支持副本集和分片集群。如果中断,也可以更改流

    从指定位置读取历史记录的必要能力

    MongoDB 4.0+中的Change streams允许您指定
    StartOperationTime
    在特定时间点打开光标。如果指定的起点在过去,则它必须在oplog的时间范围内

    oplog是否包含所有数据库的记录,而不是按集合分割


    oplog是一个包含副本集或碎片的所有数据更改的滚动历史记录的文件。capped collection特性意味着oplog有一个有限的历史窗口:一旦达到最大oplog大小,最旧的条目将被删除,以便为新文档腾出空间。
    local.oplog.rs
    数据未按集合或命名空间进行筛选。

    我可以在第一次运行oplog时从oplog的最开始获取更改流光标,还是只能从当前时刻开始,然后使用恢复令牌?如果我的恢复令牌太旧(超出oplog),它会正常工作吗?