mongoose给Shemas添加TTL indexs,让数据自动过期

mongoose给Shemas添加TTL indexs,让数据自动过期,第1张

mongoDB提供了一个TTL索引,这个索引会每分钟检查一次是否有过期数据

添加方法:

expireAfterSeconds 的单位是秒。15s后过期的数据就会被自动删除。

TopicSchema.index({create_at: -1})

TopicSchema.index({top: -1, last_reply_at: -1})

TopicSchema.index({last_reply_at: -1})

TopicSchema.index({author_id: 1, create_at: -1})

建索引是为了提高查询速度,要根据实际业务建立索引,太多了也不好,这样更新数据会变慢,因为要更新索引。

node.js mongodb mongoose

我需要每分钟在重复的mongo集合中插入1000个项目。

使用findAndUpdate / Upsert,服务器性能会大大降低。

保存没有检查重复项的服务器不会变慢,但是我将需要cronjob来删除所有重复项。

哪种方法可以扩展此规模?

一台具有高RAM的机器?多少?

许多具有副本集和较低RAM的机器?

也许分片?

最佳答案

您可以通过创建unique index自动清除重复项。

示例:当您已经存在具有first_name和last_name相同组合的文档时,如果要拒绝文档,则可以创建一个如下所示的索引:

db.addresses.ensureIndex( { "first_name": 1, "last_name": 1 }, { unique: true } )

如果您的集合中已经有重复项,并且希望在创建索引时将其删除,则还需要设置dropDups选项:

db.addresses.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11363338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存