CastError:TypeScript REST 和 Mongoose 中路径“_id”处值“1225589795”的值“1225589795”转换为 ObjectId 失败

Posted

技术标签:

【中文标题】CastError:TypeScript REST 和 Mongoose 中路径“_id”处值“1225589795”的值“1225589795”转换为 ObjectId 失败【英文标题】:CastError: Cast to ObjectId failed for value "1225589795" at path "_id" in TypeScript REST and Mongoose 【发布时间】:2021-04-20 11:18:28 【问题描述】:

我正在尝试根据 deviceId 获取数据,但出现此错误。 API 是使用 TypeScript REST 在 TypeScript 中设计的。

【问题讨论】:

【参考方案1】:

错误是不言自明的。路径 _id 必须采用特定格式,而 1225589795 不是。

你可以查看here你是如何得到错误的,但不是here。

Mongo _id 必须是 ObjectId,由以下人员组成(如文档解释):

一个 4 字节的时间戳值,表示 ObjectId 的创建,以 Unix 纪元以来的秒数为单位 一个 5 字节的随机值 一个 3 字节递增计数器,初始化为随机值

因此,您使用的值必须与此匹配,而您的号码不匹配。

【讨论】:

以上是关于CastError:TypeScript REST 和 Mongoose 中路径“_id”处值“1225589795”的值“1225589795”转换为 ObjectId 失败的主要内容,如果未能解决你的问题,请参考以下文章

typescript-koa-postgresql 实现一个简单的rest风格服务器 —— typescript 开发环境配置

typescript Angular HTTP Rest API GET,POST,PUT,DELETE

如何使用 Apollo 工具为查询生成 Typescript 类型,包括 Apollo @client 和 @rest 指令?

在 Angular2 中使用生成的 Swagger TypeScript Rest Client

CastError:转换为 ObjectId 的值失败

在 MongooseError.CastError 连接 500 错误