2017-06-11 5 views
2

私は私のデータベースにこのスキーマで文書を保存しようとしている時はいつでも、私はエラーを取得しています:マングース:[{「someKey」:「someValueの」}]値のために失敗したオブジェクトの配列にキャスト

var schemaForBooks = new Schema({ 
    book: String, 
    author: String, 
    who_has_this: Object, 
    points: Number, 
    upvoted_by_users: [Schema.Types.ObjectId], 
    downvoted_by_users: [Schema.Types.ObjectId] 
}); 

残りすべてが良いですが、upvoted_by_usersまたはdownvoted_by_usersに何かを入れて、私はこのエラーを取得:

[ERROR] Trace- CastError: Cast to [ObjectId] failed for value "[{"userName":"Vibhu","userId":"3833d1g870feaf4a38723"}]" at path "upvoted_ 
by_users" 

私は、スキーマ自体に何かをやっているかなり確信しているが、私は何を知りません。

ご協力いただければ幸いです。

+0

{ "userNameに": "Vibhuを"、 "userIdを":" 3833d1g870feaf4a38723 "}、配列に配置するのはこれですか? –

+0

はい、私はそれをしたいと思いましたが、今私はそれのための入れ子になったスキーマを作成する必要があります知っている。私はここではあまりにも愚かでした。 –

答えて

1

エラーは、{"userName":"Vibhu", "userId":"3833d1g870feaf4a38723"}オブジェクトの次の配列をObjectIdの配列にキャストしようとしています。

userNameフィールドを削除する必要があります。String + ObjectIdの配列をObjectIdの配列に変更することができます。

あなたは、たとえば、あなたのjsアレイ上のArray#map方法でそれを行うことができます。

var arr = [{"userName":"Vibhu","userId":"3833d1g870feaf4a38723"}]; 
var myCorrectArr = arr.map(field => field.userId); 

はそれが役に立てば幸い、
敬具、

+0

ありがとう@boehm_s、あなたの返信は私の質問に直接答えることはできませんでしたが、私にはそれがありました。私は 'ObjectId'といくつかの一般的な' Object'オブジェクトを混同していました –

関連する問題