Node.js 带猫鼬和参考资料的汽车预订

Node.js 带猫鼬和参考资料的汽车预订,node.js,mongodb,mongoose,mongoose-schema,Node.js,Mongodb,Mongoose,Mongoose Schema,我是mongoDB的新手,我正在建立一个汽车预订系统。我想做的是得到那些没有预订的车。用户给出了他想要租车的日期,我必须向他展示可用的日期 我可以用一个查询来完成吗?我用MySql做过这件事,但我对mongoose感到困惑 我有这个车型 const mongoose = require('mongoose'); const carSchema = mongoose.Schema({ brand: String, model: String, power: String,

我是mongoDB的新手,我正在建立一个汽车预订系统。我想做的是得到那些没有预订的车。用户给出了他想要租车的日期,我必须向他展示可用的日期

我可以用一个查询来完成吗?我用MySql做过这件事,但我对mongoose感到困惑

我有这个车型

const mongoose = require('mongoose');

const carSchema = mongoose.Schema({
    brand: String,
    model: String,
    power: String,
    seats: Number,
    imgUrl: String,

});


module.exports = mongoose.model('Car', carSchema);
这个预订模式呢

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

    const reservationSchema = Schema({
        car_id: { type: Schema.Types.ObjectId, ref: 'Car' },
        from: Date,
        until: Date,
    });


    module.exports = mongoose.model('Reservation', reservationSchema);

预订将有很多车,因此您的
reservationSchema
应该是:

const reservationSchema = Schema({
        car:[ { type: Schema.Types.ObjectId, ref: 'cars' }],
        from: Date,
        until: Date,
    });
考虑另一个模型:
availableCarSchema
。所有的车都在这里。当汽车被重新预订时,它将从此文档中删除,当预订结束时,该汽车将被添加回此文档中。 因此,要查找可用汽车,您可以查询
可用汽车
如下:

AvailableCars.find({品牌:'preferred brand',型号:'preferred model',other properties})