簡體   English   中英

需要 mongoose 查詢來搜索數組內的數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM