猫鼬对象ID约束

时间:2018-08-03 12:15:59

标签: node.js database mongoose size objectid

你好,我正在使用猫鼬,但很长一段时间后,我仍然不知道如何解决此错误...我尝试了几个小时来解决它,但是每次我通过隐藏字段来“隐藏”问题时,随机字符,但是对于我的项目,我不能,我需要一个精确的ID,因此如果有人可以,请提供一个示例,这将非常好

  

错误:传入的参数必须是12个字节的单个字符串或   一串24个十六进制字符

我正在尝试创建一个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),
});

1 个答案:

答案 0 :(得分:0)

mongoose.Types.ObjectId总是期望24个字符,这是一个十六进制字符,例如5b6159a1034cf06b23aa2382,相当于12个字节。该错误是由于长度不正确的24位十六进制字符引起的。检查您作为参数传递的mapId的值和长度。它必须满足24位十六进制字符才能解决该错误。

不过,您可以添加一些固定字符,例如说您有20个字符的mapId,然后添加4个十六进制字符,例如abcd,使其总数为24,然后使用它。