Node.js 通过更简单的ID查找项目';猫鼬

Node.js 通过更简单的ID查找项目';猫鼬,node.js,mongoose,Node.js,Mongoose,我在玩猫鼬模式。我有3个项目,每个项目都有一个对应的ID字段,如下所示: "_id": "508dcb79cb1c8ad910000001"," "_id": "508dcba389e2f32e11000002"," "_id": "508dcba389e2f32e11000003"," app.get('/fields/:id', function(req, res) { ; }); 有没有默认的方法来处理这一大块ID以获得一个更干净的ID,而不必设置自定义ID的编号来只获取与ID对应的最

我在玩猫鼬模式。我有3个项目,每个项目都有一个对应的ID字段,如下所示:

"_id": "508dcb79cb1c8ad910000001","
"_id": "508dcba389e2f32e11000002","
"_id": "508dcba389e2f32e11000003","
app.get('/fields/:id', function(req, res) { ; });
有没有默认的方法来处理这一大块ID以获得一个更干净的ID,而不必设置自定义ID的编号来只获取与ID对应的最后一个编号? 或者我应该使用正则表达式或其他东西通过id获取它们,如:

"_id": "508dcb79cb1c8ad910000001","
"_id": "508dcba389e2f32e11000002","
"_id": "508dcba389e2f32e11000003","
app.get('/fields/:id', function(req, res) { ; });
并使用
/field/1
/field/3
或其他任何方式访问它们。

如前所述,文档的ObjectID由时间戳、机器id、进程id和计数器组成。我看不到一种方法可以单独使用计数器并提出ObjectID。使用正则表达式搜索索引可能不是一个好主意,因为最终会迭代索引中的所有objectid。正如所指出的,只有简单的前缀正则表达式才能利用索引。此外,我认为多个文档可能具有相同的计数器,例如,如果在两台不同的计算机上对同一集合进行写入

因此,简短的回答是“不”。如果你真的想要短ID,你可能应该使用你自己的,比如,或者只是通过一个自然唯一的索引(如果你的收藏碰巧有一个索引)来查找文档,比如电子邮件、用户名等等