gpt4 book ai didi

mysql - 如何在 MongoDB 中实现自动递增的主 ID?

转载 作者:IT王子 更新时间:2023-10-28 23:53:17 24 4
gpt4 key购买 nike

就像在 MYSQL 中一样,我想要一个递增的 ID。

最佳答案

您需要使用 MongoDB 的 findAndModify命令。有了它,你可以atomically select and increment a field .

db.seq.findAndModify({
query: {"_id": "users"},
update: {$inc: {"seq":1}},
new: true
});

这将为 users 集合增加一个计数器,然后您可以在插入之前将其添加到文档中。由于它是原子的,您不必担心竞争条件会导致 ID 冲突。

它不像 MySQL 的 auto_increment 标志那样无缝,但您通常也可以选择在您的 Mongo 驱动程序中指定您自己的 ID 工厂,因此您可以实现一个使用 findAndModify 来递增和返回的工厂ID 透明化,带来更像 MySQL 的体验。

这种方法的缺点是,由于每个插入都依赖于序列集合上的写锁,如果您进行大量写入,您可能很快就会遇到瓶颈。如果您只是想保证集合中的文档按插入顺序排序,请查看 Capped Collections .

关于mysql - 如何在 MongoDB 中实现自动递增的主 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4356993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com