mongodb 练手

保存文档

db.hotel.price.save(
{
    "hotelId":1,
    "roomItems":[
        {
            "roomId":1,
            "roomName":"豪华房",
            "products":[
                {
                    "bedType":"000001",
                    "bookType":1,
                    "invoiceModel":1,
                    "priceItems":[
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":2,
                            "breakfastType":1,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":2,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-01",
                            "salePrice":887
                        },
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":2,
                            "breakfastType":1,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":2,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-02",
                            "salePrice":887
                        },
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":2,
                            "breakfastType":1,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":2,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-03",
                            "salePrice":887
                        },
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":2,
                            "breakfastType":1,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":2,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-04",
                            "salePrice":887
                        }
                    ],
                    "ratePlanId":"118027855",
                    "ratePlanName":"豪华房(标准价)(连住2晚及以上).",
                    "supplyCode":"S10154304"
                },
                {
                    "bedType":"000001",
                    "bookType":1,
                    "invoiceModel":1,
                    "priceItems":[
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":0,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":1,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-01",
                            "salePrice":890
                        },
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":0,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":1,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-02",
                            "salePrice":890
                        },
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":0,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":1,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-03",
                            "salePrice":890
                        },
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":0,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":1,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-04",
                            "salePrice":890
                        }
                    ],
                    "ratePlanId":"118028082",
                    "ratePlanName":"豪华房(限时秒杀-无早).",
                    "supplyCode":"S10154304"
                }
            ]
        },
        {
            "roomId":2,
            "roomName":"大床房",
            "products":[
                {
                    "bedType":"000001",
                    "bookType":1,
                    "invoiceModel":1,
                    "priceItems":[
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":0,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":1,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-01",
                            "salePrice":951
                        },
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":0,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":1,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-02",
                            "salePrice":951
                        },
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":0,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":1,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-03",
                            "salePrice":951
                        },
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":0,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":1,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-04",
                            "salePrice":951
                        }
                    ],
                    "ratePlanId":"118028023",
                    "ratePlanName":"大床房(限时秒杀-无早).",
                    "supplyCode":"S10154304"
                },
                {
                    "bedType":"000001",
                    "bookType":1,
                    "invoiceModel":1,
                    "priceItems":[
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":2,
                            "breakfastType":1,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":2,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-01",
                            "salePrice":1005
                        },
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":2,
                            "breakfastType":1,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":2,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-02",
                            "salePrice":1005
                        },
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":2,
                            "breakfastType":1,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":2,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-03",
                            "salePrice":1005
                        },
                        {
                            "bookRestrictionType":0,
                            "breakfastNum":2,
                            "breakfastType":1,
                            "cancelRestrictionType":1,
                            "occupancyRestrictionType":1,
                            "occupancyRestrictionDay":2,
                            "minRoomCount":1,
                            "roomStatus":1,
                            "saleDate":"2018-07-04",
                            "salePrice":1005
                        }
                    ],
                    "ratePlanId":"118027973",
                    "ratePlanName":"大床房(标准价)(连住2晚及以上).",
                    "supplyCode":"S10154304"
                }
            ]
        }
    ]
}
)

更新酒店id为1的第一个房间名称为超级豪华房

db.hotel.price.update(
{"hotelId" : 1},
{"$set":{"roomItems.0.roomName":"超级豪华房"}}
)

给酒店id为1的酒店添加总统房

db.hotel.price.update(
{"hotelId" : 1},
{"$push":{
        "roomItems":{
            "roomId" : 3.0,
            "roomName" : "总统房",
            "products" : [ 
                {
                    "bedType" : "000002",
                    "bookType" : 1.0,
                    "invoiceModel" : 1.0,
                    "priceItems" : [ {
                            "bookRestrictionType" : 0.0,
                            "breakfastNum" : 0.0,
                            "cancelRestrictionType" : 1.0,
                            "occupancyRestrictionType" : 1.0,
                            "occupancyRestrictionDay" : 1.0,
                            "minRoomCount" : 1.0,
                            "roomStatus" : 1.0,
                            "saleDate" : "2018-07-01",
                            "salePrice" : 890.0
                        }, 
                        {
                            "bookRestrictionType" : 0.0,
                            "breakfastNum" : 0.0,
                            "cancelRestrictionType" : 1.0,
                            "occupancyRestrictionType" : 1.0,
                            "occupancyRestrictionDay" : 1.0,
                            "minRoomCount" : 1.0,
                            "roomStatus" : 1.0,
                            "saleDate" : "2018-07-02",
                            "salePrice" : 890.0
                        }
                    ],
                    "ratePlanId" : "118027855",
                    "ratePlanName" : "总统房(连住2晚及以上).",
                    "supplyCode" : "S10154309"
                }
            ]
        }
    }}
)

删除酒店id为1的酒店的大床房

db.hotel.price.update(
{"hotelId" : 1},
{"$unset":{"roomItems.1":1}}
)

db.hotel.price.update(
{"hotelId" : 1},
{"$pull":{"roomItems":null}}
)

拆解出酒店id为1的酒店有哪些房型

db.hotel.price.aggregate([
{"$match":{"hotelId" : 1}},
{$project:{_id: 0}},
{$unwind :"$roomItems"},
{$project:{roomId:"$roomItems.roomId", roomName:"$roomItems.roomName"}}
]
)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*