你好,我正在使用 Mongoose ,很长一段时间后我仍然不知道如何修复这个错误...我尝试了几个小时来修复它,但每次我只是通过用随机字符填写字段来“隐藏”问题,但对于我的项目我不能,我需要一个精确的 ID,所以如果有人可以帮助提供一个示例,那就太好了
Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters
我正在尝试创建一个 Id,例如:map1AssigneSeat
为了坚持,我使用以下代码,其中mapId等于map1AssigneSeat:
var rowData = new MapDatabase({
MapDescription: mongoose.Types.ObjectId(mapId),
DeckNumber: Number(map.Deck[i].DeckNumber),
x: Number(map.Deck[i].x),
y: Number(map.Deck[i].y),
});
最佳答案
mongoose.Types.ObjectId
始终需要 24 个十六进制字符,例如 5b6159a1034cf06b23aa2382
,相当于 12 个字节。该错误是由于 24 位十六进制字符的长度不正确造成的。检查您作为参数传递的 mapId
的值和长度。它必须满足 24 位十六进制字符才能解决该错误。
但是,您可以添加一些固定字符,例如您有 20 个字符的 mapId
,然后添加 4 个十六进制字符,例如 abcd
,使其总数达到 24 个并使用它。
关于node.js - Mongoose 对象 id 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51672423/