2

我正在使用 Elastich Search 和 MongoDB 开发一个应用程序。弹性搜索使用 MongoDB oplog 通过一个名为 River 的组件来索引内容。

是否可以重置 MongoDB oplog 以使所有以前的条目都消失?

4

2 回答 2

4

oplog 用于复制,不应被篡改。

oplog 是一个有上限的集合:

您不能从有上限的集合中删除文档。要从上限集合中删除所有记录,请使用“emptycapped”命令。要完全删除集合,请使用 drop() 方法。

http://docs.mongodb.org/manual/core/capped-collections/

您可能想要使用可尾光标并在河中尾随 oplog。

于 2013-06-26T15:01:25.387 回答
1

如果您的应用程序要连续读取 oplog,它需要能够从特定的时间戳 (ts) 值开始。如果没有这种能力,如果应用程序(或 mongod)因任何原因必须重新启动,它将不得不重新处理它已经处理但仍在 oplog 中的所有 oplog 条目。如果应用程序确实有能力从 ts 值开始,那么只需在 oplog 中查询 ts 的最大值,并将其用作起点。

于 2013-06-27T14:30:55.687 回答