[英]need mongoose query to search array inside array
所以任務是根據車輛類型分配停車位。 If 2-wheeler - 摩托車點,4Wheeler - compact&large 點,公共汽車 - 5 個大點
我需要一種優化方法來獲得可用的停車位,即。 slot.occupied == false,我想避免多個 for 循環,因為數據會增加並且會有多個級別。
"levelNo":"1",
"row":{[
"rowNo":"1",
"slots":[{
"slotNo":1,
"slotType":"Motorcycle",
"occupied":false
},
{
"slotNo":2,
"slotType":"Motorcycle",
"occupied":false
},
{
"slotNo":3,
"slotType":"Motorcycle",
"occupied":false
},{
"slotNo":4,
"slotType":"Compact",
"occupied":false
},{
"slotNo":5,
"slotType":"Compact",
"occupied":false
},{
"slotNo":6,
"slotType":"Compact",
"occupied":false
},
{
"slotNo":7,
"slotType":"Large",
"occupied":false
},
{
"slotNo":8,
"slotType":"Large",
"occupied":false
}]
},
{
"rowNo":"2",
"slots":[{
"slotNo":1,
"slotType":"Motorcycle",
"occupied":false
},
{
"slotNo":2,
"slotType":"Motorcycle",
"occupied":false
},
{
"slotNo":3,
"slotType":"Motorcycle",
"occupied":false
},{
"slotNo":4,
"slotType":"Compact",
"occupied":false
},{
"slotNo":5,
"slotType":"Compact",
"occupied":false
},{
"slotNo":6,
"slotType":"Compact",
"occupied":false
},
{
"slotNo":7,
"slotType":"Large",
"occupied":false
},
{
"slotNo":8,
"slotType":"Large",
"occupied":false
}]
}]
}
模型(架構) -請建議一種更好的方法來存儲此類數據
levelNo:{
type:String,
required:true,
},
row:[{
rowNo:{
type:String,
required:true,
},
slots:[
{
slotNo:{
type:Number,
required:true,
},
slotType:{
type:String,
enum:['Motorcycle','Compact','Large']
},
occupied:{
type:Boolean,
required:true,
},
currentVehicle:{
type:String,
}
}],
}],
totalrows:{
type:Number,
required:true
},
levelIsFull:{
type:Boolean,
default:false,
}
})
也許您可以創建一個變量來存儲搜索停車位的車輛類型。 然后,您只需要一個 for 循環來搜索相應的未被占用的停車位。 您不需要循環每個樓層,循環通過所有停車位,當您找到它時顯示停車位編號和它所在的級別。
而不是存儲每個級別的數據。 只制作一個停車位 model 並在其中顯示它所在的級別。 所以 model 看起來像:
spotNumber: {
occupied: false,
type: "large",
level: 1
}
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.