如何使用我的自定义_id保存到数据库?

时间:2017-08-17 14:25:42

标签: node.js mongoose

我想使用自定义_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);
            });

希望你能帮助我。 谢谢。

1 个答案:

答案 0 :(得分:0)

您的自定义 uid 不是ObjectID类型。

默认情况下,Mongoose _id 的类型为ObjectID,因此它们不匹配。

您可以在架构中明确定义 _id ,使其与自定义 uid 的类型相同,例如:

allowSegmentTiering(false)

但是,最好将默认的 _id 保留为ObjectID,并使用可用于查询的辅助 uid 字段等。