0
我看到了與貓鼬非常不尋常的東西。我使用v4.8.1。保存在Mongoose中的嵌套對象不工作,但尚未通過驗證
我有一個叫做Gate的模式,它有一個名爲histGate
的屬性。我想將數據保存的格式爲:
histGate:{
'4':
{
gateName: 'G1'
},
'5':
{
gateName: 'G5'
}
},
...
...
所以histGate
將有物業「4」,「5」,「7」和值將是對象。
我的貓鼬架構是:
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
有histGate
具有「4」和「5」屬性。然而,當我看着Mongo數據庫時,它並沒有,它只有'4'屬性。當我查詢時,它只有'4'屬性。
所以貓鼬告訴我一切都很好,並且它已經保存了,但實際上並沒有。這是怎麼回事?我的模式錯了嗎?
編輯
如果我編輯一個屬性,它是一個字符串,它的工作原理。如果我編輯屬性是一個對象,它的工作原理。當我編輯包含嵌套對象的屬性,它不工作
編輯
它看起來像這樣的架構心不是可能與貓鼬和蒙戈,它必須是一個數組
編輯
看起來你可以擁有動態密鑰,例如'4','5'等創建一個貓鼬文檔時,但你不能編輯或添加更多。完全莫名其妙。