【发布时间】:2015-11-12 21:14:59
【问题描述】:
很奇怪的情况,我尝试了很多解决方案,但我似乎无法破解它。
我发现的很多资源只包含 mongo 控制台命令,我不确定你会如何在 Node.js 中编写它。
我试图解决这个问题的原因是我试图让每个文档的“id”从最后一个开始迭代,所以尝试查找集合中的文档数量,添加一个然后然后将该数字用作新文档的“id”。
【问题讨论】:
-
您在 Node.js 中使用什么 MongoDB 驱动程序和/或库?
-
您以错误的方式处理此问题。您想要一个包含“计数器”值的集合(很可能是单个文档)。请参阅:docs.mongodb.org/manual/tutorial/…。还有一个猫鼬插件:npmjs.com/package/mongoose-auto-increment
-
我正在使用 Mongoose,我将研究其他方法。它提到如果您开始处理大量文档,这不是一个好主意。
-
为什么“整数”作为主键对于大量文档来说不是一个好主意的原因是所有数据库的通用概念,也是默认选择
ObjectId时的主要关注点对于 MongoDB 集合中的该值。数字计数器具有有限的限制,通过其他方式相形见绌。因此,该建议旨在鼓励您保留ObjectId。澄清一下。 -
我们在这里讨论的是 MongoDB,这是一个旨在处理大量数据的数据库,可能分布在大量服务器上。因此,像“给我所有文档”或“确保特定数字在我的所有文档中唯一”这样的查询,不应该是你应该做的事情。