2017-04-22 13 views
0

私はこの内部配列mongodbでデータをプッシュする方法は?

Licensee.update({"_id":"58eed81af6f8e3788de703f9"},{ 
     $push:{ 
      "vehicles.details":data 
     } 
    },function(err,data){ 
     if(!err) 
     { 
      console.log('data',data); 
     } 
     else 
     { 
      console.log('err',err); 
     } 
    }); 

ようにしようとしていた私のコレクションは

{ 
"_id": "58eed81af6f8e3788de703f9", 
"first_name": "abc", 
"vehicles": { 
    "exhibit": "18", 
    "title": "Motor Velicle Information for Donald French", 
    "details": [ 
     { 
      "year": "", 
      "make_model": "", 
      "registered_owner": "", 
      "license_number": "", 
      "date_of_purchase": "", 
      "purchase_price": "" 
     } 
    ] 
} 

}

あるので、私は何をしたいが、そのためにdetailsにデータをプッシュすることで、ドキュメント配列の配列をプッシュしようとしていますこれに対して私は1つのスキーマを作成しますが、わかりませんがわかりません

var licSchema = new SimpleSchema({ 
"_id":{ 
    type:String, 
    label:"_id", 
    optional: false, 
}, 
"vehicles.details.year": { 
    type: String, 
    label: "year", 
    optional: true, 
}, 
"vehicles.details.make_model": { 
    type: String, 
    label: "make_model", 
    optional: true, 
} 

});

私の欠陥は私に解決策を教えてください。 エラーUncaught Error: After filtering out keys not in the schema, your modifier is now empty

+0

いただきましたエラーメッセージここ – collision

+0

'不明なエラー:スキーマ内のキーではなくフィルタリングした後、あなたの修飾子は、今私は障害 – kumbhanibhavesh

答えて

1

これを試すことができます。 AddToSetは正しい方法です。

const schema = new SimpleSchema({ 
    "vehicles.details.$.year": { 
     type: String, 
     label: "year", 
     optional: true, 
    }, 
    "vehicles.details.$.make_model": { 
     type: String, 
     label: "make_model", 
     optional: true, 
    } 
}); 

Licensee.update({"_id":"58eed81af6f8e3788de703f9"},{ 
    $addToSet:{ 
     "vehicles.details": data 
    } 
}); 
+0

同じエラー私の事がスキーマであるempty'されます。 – kumbhanibhavesh

+0

あなたは私のスキーマを確認できます – kumbhanibhavesh

+0

@kumbhaniBhaveshあなたが正しいです。更新された回答を確認してください。 – collision

関連する問題