Javascript 如何在mongoDB中使用其他类型的id
任务是将mongoDb中默认的唯一的Javascript 如何在mongoDB中使用其他类型的id,javascript,mongodb,mongoose,nestjs,mongoose-schema,Javascript,Mongodb,Mongoose,Nestjs,Mongoose Schema,任务是将mongoDb中默认的唯一的\u id更改为具有这种视图的自动递增id00001,00002,我只做过类似于1,2,但不确定这样做对不对 这是我的自动增量代码: //这里我们按id排序,找到最后添加的产品 const lastProd=wait this.productModel .findOne() .sort({u id:'desc'}) .exec(); const newProduct=newthis.productModel({ //如果最后一个prod不为null,则执行增
\u id
更改为具有这种视图的自动递增id00001
,00002
,我只做过类似于1
,2
,但不确定这样做对不对
这是我的自动增量代码:
//这里我们按id排序,找到最后添加的产品
const lastProd=wait this.productModel
.findOne()
.sort({u id:'desc'})
.exec();
const newProduct=newthis.productModel({
//如果最后一个prod不为null,则执行增量
_id:lastProd?lastProd.\u id+1:0,
标题
描述:描述,
价格,
image:image.filename,
});
const result=wait newProduct.save()代码>MongoDB将不允许您使用以一串零开头的类型number
保存道具
我会将id保存为string类型&在使用它时,将其转换为数字,并将其作为字符串保存回mongoDB中(如果确实需要)
const parseIdFromNumber=id=>{
if(id<10)返回`000${id}`;
if(id<100)返回`00${id}`;
if(id<1000)返回`0${id}`;
}
常数a=parseIdFromNumber(4);
常数b=解析的二进制数(22);
const c=parseIdFromNumber(233);
//保存到数据库
控制台日志(a、b、c)
//将字符串ID转换为数字
console.log(+a,+b,+c)
文档的\u id
由mongoDB自动设置,它是一个十六进制值,我认为它不能递增。@Gabriel Lupu,我已经测试了我的代码示例,它可以工作,问题是,我不知道我实现权利的方式是什么,以及如何将其带到这个视图00001
mongodbOkay中关于自动增量的教程,所以你要插入自己的id,为什么在1之前需要所有这些零?因为任务需要谢谢你的回答,据我所知,mongoDB/mongoose没有实现任务的功能,我应该用js编写自己的代码,请告诉我,是吗?是的,mongoDB不会让你添加一个以一堆零开始的数字。如果您需要进一步的澄清,请告诉我。