2017-12-12 16 views
1

私は、重複データが配列にプッシュすることができ、私はJSONを使用している場合、それはなるので、配列の場合はsave mongooseを使ってオブジェクトとしてオブジェクトを埋め込みますか?

  1. 二つの理由のembeddedDocsAsJsonを使用したい、この

    const user = new Schema({ 
        firstName: { type: String, required: true }, 
        lastName: { type: String , required: true}, 
        phone:{type: Number, unique true} 
        embeddedDocsAsJson: {} // not as an array 
    }, 
        { minimize: false } 
    ) 
    

    のようなスキーマを持っています私はunique idjsonとして使用します。

  2. 検索を高速化するため、配列を繰り返し処理する必要はありません。私はjson key

問題からそれを取り出すことができます。 は、まず私がfirstName and lastName phoneを挿入しています。下記のドキュメントを更新する

let user = await User.findOne({phone: somenumber}) 
    user.embeddedDocsAsJson.someId = someObject // getting error in this line because `user.embeddedDocsAsJson` is `undefined` 
    user.save() 

を更新するための私のコードである一方、

そしてembeddedDocsAsJsonが追加された

+0

まず、user.embeddedDocsAsJson = {}を設定してみましたか? –

+0

これはうまくいきました...しかし、既にそのスキーマで定義されているのは、埋め込みDocsAsJson:{}を設定してbydw – ashwintastic

+0

を動作させていません。デフォルト値を{}として設定していません。 – Shubham

答えて

1

EmbeddedDocsを更新している間、私はembeddedDocsAsJsonに値を追加しているオブジェクトを保存する場合で、デフォルトの配列ですコードの下にあなたのコレクションで動作します。

let user = await User.findOne({phone: somenumber}) 
    user.embeddedDocsAsJson = {} 
    user.embeddedDocsAsJson.someId = someObject // getting error in this line because `user.embeddedDocsAsJson` is `undefined` 
    user.save() 
関連する問題