2016-07-08 9 views
0

MEANスタックアプリケーションでプランを処理しようとしています。私はfindOneを呼び出すと、私はこのエラーを取得しています:これは私がこのやっている方法ですCastError:パス "_id"の値XXXでObjectIdへのキャストに失敗しました

CastError: Cast to ObjectId failed for value \"[ '576df16eed10c2fccbcbd60c' ]\" at path \"_id\"" 

Plan.findOne({_id: planId}, function(err, plan){ //do something }); 

を私は(下記のような)文字列としてIDを入れたときに気づい、すべてうまく動作します。

だから、
Plan.findOne({_id: '576df16eed10c2fccbcbd60c'}, function(err, plan) 

、私はplanIdコンソール:

console.log('planId: ' + planId + ' | ' + typeof planId); 
Output: planId: [ '576df16eed10c2fccbcbd60c' ] | object 

私はSOにここで見つけるものをしようとしてきたが、何がこの問題を解決するために私を助けることができる:/

+0

あなたが送信され、PLANIDを受け取ったか私を見ることができますか? –

答えて

1

は次のようになりますplanIdは配列です。

planId[0]とお試しいただけますか?

Plan.findOne({_id: planId[0]}, function(err, plan){ //do something }); 

または

Plan.findOne({_id: new ObjectId(planId[0])}, function(err, plan){ //do something }); 
+0

ObjectIdは未定義です。だから私はplanId = new mongoose.Types.ObjectId(planId [0]);を試しましたが、別のエラー "Plan not found"が表示されます。私はこのIDが正しいと確信しています。 –

+0

ObjectIdに変換した後、 'planId'の出力は' 577fc3002eccc12d154631e1'であり、タイプはまだ 'object'です。 –

+0

プランが見つかりません。 Planモデルを含む(必要としている)のですか? – richardtz

関連する問題