说一个cms我有以下两个集合:article
和revision
。每个文章的实际文本都存储在修订文档中,该文档具有指向该文章的文档引用。一篇文章可以有多个修订版本,但它只存储对最新修订版本的文档引用。存在mongodump cronjob可以定期备份数据库。
创建新修订版时,首先将文档插入修订集,从而为我们提供一个ObjectId。然后,我们更新相应的文档以指向此新修订。
鉴于仅当修改单个文档时,mongodb中只有操作才是原子操作,mongodump操作是否有可能在上述两个操作之间记录数据库的状态? (例如,新修订记录在备份中,但文章文档中的指针的后继记录则没有)
如果以上情况可行,如何消除?
我猜测选项--oplog
可能会有所帮助,但是如果在mongodb完成后立即进行文章更新该怎么办?从--oplog
的描述来看,该更新将不会被记录。