Бронирование автомобиля с мангустом и ссылками - PullRequest
0 голосов
/ 19 декабря 2018

Я новичок в mongoDB и создаю систему бронирования автомобилей.То, что я пытаюсь сделать, это получить автомобили, которые не зарезервированы.Пользователь указывает даты, когда он хочет арендовать автомобиль, и я должен показать ему доступные.

Могу ли я сделать это одним запросом?Я сделал это с MySql, но меня смущает мангуст ..

У меня есть эта модель автомобиля

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);

1 Ответ

0 голосов
/ 20 декабря 2018

В резервации будет много автомобилей, поэтому ваш reservationSchema должен быть:

const reservationSchema = Schema({
        car:[ { type: Schema.Types.ObjectId, ref: 'cars' }],
        from: Date,
        until: Date,
    });

Рассмотрим другую модель: availableCarSchema.Все машины здесь.Когда автомобиль восстановлен, он удаляется из этого документа, а когда резервирование заканчивается, автомобиль добавляется обратно в этот документ.Таким образом, чтобы найти доступные автомобили, вы бы запросили availableCars, например:

AvailableCars.find({brand:'preferred brand',model:'preferred model',other propertis})

...