Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在mongoDB中使用其他类型的id_Javascript_Mongodb_Mongoose_Nestjs_Mongoose Schema - Fatal编程技术网

Javascript 如何在mongoDB中使用其他类型的id

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,则执行增

任务是将mongoDb中默认的唯一的
\u id
更改为具有这种视图的自动递增id
00001
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不会让你添加一个以一堆零开始的数字。如果您需要进一步的澄清,请告诉我。