gil*_*iev 4 python ttl mongodb mongoengine
我在 Python中的模型中boolean命名pending了字段Mongoengine。我希望文档在 1 小时后仅在pending=True. 如果我需要在 1 小时后无条件删除文档,我将设置过期索引。是否有一些聪明而简单的方法来添加一些条件检查来使索引过期?
先感谢您!
Duš*_*jka 11
从 MongoDB 3.2 版开始,您可以使用部分索引(与 TTL 索引结合使用)。
此索引将删除pending = true1 小时内的所有文档。如果在这一小时内更新了文档并且不再处于待处理状态,则不会将其删除。
let keys = { lastModifiedDate: -1 };
let options = {
expireAfterSeconds: 3600,
partialFilterExpression: { pending: true }
};
db.getCollection("collection").createIndex(keys, options);
Run Code Online (Sandbox Code Playgroud)
(虽然这个答案可能不再与您相关,但我相信其他人将来会发现它很有用)