2017-08-17 1 views
0

私は、私のカスタム_idでデータベースにデータを保存したい が、私はエラーを取得:Cast to ObjectID failed for value...私のカスタムIDでデータベースに保存するには?

私は私_idを変換してからsave()メソッドを呼び出しshoyldと思います。ここで

は、このために私のコードです:

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

お客様のカスタムuidはObjectIDタイプではありません。

デフォルトでは、Mongoose _idはObjectIDタイプであり、一致しません。

あなたは、特にたとえば、カスタムUIDと同じタイプであるためにあなたのスキーマに _id を定義することができます。

var mySchema = new Schema({ 
    _id: String, 
    // Other fields 
}); 

をしかし、デフォルト_idを残すために良いアイデアかもしれませんをObjectIDとして使用し、照会などに使用できるセカンダリuidフィールドがあります。

関連する問題