2017-08-17 68 views
0

我想要的數據到數據庫與我的自定義_id, 保存,但我得到一個錯誤:Cast to ObjectID failed for value...如何使用我的自定義_id保存到數據庫?

我認爲我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

您的自定義uid不是ObjectID類型。

默認情況下Mongoose _id是ObjectID類型,因此它們不匹配。

你可以明確您的模式定義_id是同一類型的自定義UID,例如:

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

但是,它可能是一個更好的主意,保留默認_id作爲ObjectID並且有一個輔助uid可用於查詢的字段等。

相關問題