如何查询复杂的Mongoose schema

编程入门 行业动态 更新时间:2024-10-06 16:26:06

如何查询复杂的<a href=https://www.elefans.com/category/jswz/34/1771443.html style=Mongoose schema"/>

如何查询复杂的Mongoose schema

    import mongoose from "mongoose";
    const hotelSchema =new  mongoose.Schema({
    name:{
        type:String,
        required:[true, "Please enter hotel name"],
        trim:true

    },
    gst:{
        type:String,
        required:[true, "Please enter hotel GST"],
    },
    featuredHotel:{
        type:String,
        default:"disabled"
    },
    description:{
        type:String,
        required:[true, "Please enter hotel description"],
    },
    primaryContactNumber:{
        type:Number,
        required:[true, "Please enter primary contact number"]
    },
    alternateContactNumber:{
        type:Number,
        required:[true, "Please enter primary contact number"]
    },
    email:{
        type:String,
        required:[true, "Please enter email"]
    },
    address:{
        buildingNo:{
            type:String,
            required:[true, "Please enter the building number"]
        },
        streetName:{
            type:String,
            required:[true, "Please enter the street name"]
        },
        area:String,
        city:{
            type:String,
            required:[true, "Please enter the city"]
        },
        state:{
            type:String,
            required:[true, "Please enter the state"],
        },
        country:{
            type:String,
            default:"India"
        },
        pinCode:{
            type:Number,
            required:[true, "Please enter the pinCode"]
        }
    },
    rooms:[
        {
            name:{
                type:String,
                required:[true, "Please enter the room type"]
            },
            cost:[{price:{
                type:Number,
                required:[true, "Please enter room price"],
            },
            type:{
                type:String,
                required:[true, "Please enter the price type"]
            },
            quantity:{
                type:Number,
                required:[true, "Please enter room quantity"],
            },
            }],
            category:[{
                    type:String,
                    required:[true, "Please enter the room category"]
                
            }],
            status:{
                type:String,
                required:[true, "Please enter the room status"]
            },
            note:String
        }
    ],
    
    images:[
        { public_id:{
            type:String,
            required:true,
        },
        url:{
            type:String,
            required:true,
        }}
    ],
    hotelCategory:[{
            type:String,
            required:[true, "Please enter the hotel category"]
    }],
    amenities:[{
            type:String,
            required:[true, "Please enter the amenities"]
    }],
    hotelPolicy:[
        {
                type:String,
                required:[true, "Please enter the hotel policy"]}
    ],
    cancelPolicy:[
        {
                type:String,
                required:[true, "Please enter the cancel policy"]
        },
     ],
     placesOfInterest:[
        {
                type:String,
        },
     ],
     ratings:{
        type:Number,
        default:0
    },
    numOfReviews:{
        type:Number,
        default:0
    },
    status:{
        type:String,
        default:"disabled"
    },
    reviews:[
        {
            user:{
                type:mongoose.Schema.ObjectId,
                ref:"User",
            },
            name:{
                type:String,
            },
            rating:{
                type:Number,
            },
            comment:{
                type:String,
            }
        }
    ],
    user_id:{
        type:mongoose.Schema.ObjectId,
        ref:"User",
    },
    isApproved:{
        type:String,
        default:"pending"
    },
    isDeleted:{
        type:String,
        default:"NA"
    },
    createdAt:{
        type:Date,
        default:Date.now
    },
    updatedAt:{
        type:Date,
        default:Date.now
    }

});


export const Hotel = mongoose.model("Hotel", hotelSchema);

我需要查询上面的模式并过滤文档。

过滤场景是

  1. 获取地址下城市等于某个给定值的所有文档。
  2. 根据房间下的价格对文件进行排序。
  3. 获取房间下类型等于给定值的文件。

同样,我想添加其他复杂的条件。

回答如下:

更多推荐

如何查询复杂的Mongoose schema

本文发布于:2024-05-30 06:23:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770202.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Mongoose   schema

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!