Mongooseで非常に珍しいものを見ています。私はv4.8.1を使っています。Mongooseにネストされたオブジェクトを保存しても、まだ検証が行われていません
私はゲートと呼ばれるスキーマを持っていて、histGate
というプロパティを持っています。 「7」、「5」、「4」だから、histGate
プロパティを持つことになります
histGate:{
'4':
{
gateName: 'G1'
},
'5':
{
gateName: 'G5'
}
},
...
...
と値は、オブジェクトになります:私は形式でデータを保存したいです。
マイマングーススキーマは次のとおりです。
histGate: {
type: {
"gateName": {type: String
}
}
私は一度histGateするプロパティを保存することができ、私はモンゴでチェックするとき、私は以下を参照してください
'4':
{
gateName: 'G1',
},
しかし、その後、私は別のプロパティを保存しよう:
return Gate.findById(gateId)
.then(function(gateDb){
gateDb.histGate['5'] = gate;
return gateDb.save()
.then(function(gateDb){
console.log('saved and gateDb is ', gateDb);
return gateDb;
})
.catch(function(err){
console.log('err is ', err);
throw err;
});
})
.catch(function(err){
console.log('err is ', err);
throw err;
});
これは保存されていると伝えます。 gateDb
は '4'および '5'のプロパティを持つhistGate
です。しかし、私がMongoデータベースを見ると、それは「4」のプロパティしか持たない。私が照会すると、それは「4」のプロパティしか持たない。
だから、Mongooseは私にすべてが上品で素敵で、保存されていると言っていますが、それは実際にはありません。どうしたの?スキーマが間違っていますか?
EDIT
私は文字列であるプロパティを編集した場合、それが動作します。オブジェクトであるプロパティを編集すると、そのオブジェクトは機能します。私はネストされたオブジェクトが含まれているプロパティを編集するとき、それは仕事をdoesnt
EDIT
それは、それは配列でなければなりませんマングースやモンゴで可能ありえないこのスキーマのように見えます
EDIT
ダイナミックキーを使用できるように見えます。 Mongoose文書を作成するときは '4'、 '5'などと入力しますが、編集や追加はできません。全く困った。