我想使用自定义_id
将数据保存到数据库,
但是我收到一个错误:Cast to ObjectID failed for value...
我认为我shoyld转换_id
,然后调用save()
方法。
这是我的代码:
var uid = decodedToken.uid;
var body = _.pick(req.body, ['email' , 'fname', "lname", "providerID"]);
body._id = uid;
var userEX = new UserEX(body);
userEX.save().then( (user) => {
res.send(user);
}).catch( (err) => {
res.status(400).send(err);
});
希望你能帮助我。 谢谢。
答案 0 :(得分:0)
您的自定义 uid 不是ObjectID类型。
默认情况下,Mongoose _id 的类型为ObjectID,因此它们不匹配。
您可以在架构中明确定义 _id ,使其与自定义 uid 的类型相同,例如:
allowSegmentTiering(false)
但是,最好将默认的 _id 保留为ObjectID,并使用可用于查询的辅助 uid 字段等。