最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何查询复杂的Mongoose schema

网站源码admin34浏览0评论

如何查询复杂的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. 获取房间下类型等于给定值的文件。

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

回答如下:

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论