Хорошо, я исхожу из SQL-фона, и я просто загрязняю руки, используя MongoDB и Mongoose.Отношения в NoSql с использованием mongoDB и Mongoose
У меня есть две простые модели:
CAR:
let mongoose = require('mongoose');
let carsSchema = new mongoose.Schema({
brand: String,
specfifications: [String],
image: String
});
module.exports = mongoose.model('Car', carSchema);
Driver
let mongoose = require('mongoose');
let Schema = mongoose.Schema;
let driverSchema = new mongoose.Schema({
name: String,
cars: [{ type: Schema.Types.ObjectId, ref: 'Car' }]
});
module.exports = mongoose.model('Driver', driverSchema);
Из того, что я могу понять, это, кажется, правильный способ обработки взаимно -many-отношения, где один автомобиль может использоваться многими водителями.
Теперь мне нужно добавить класс под названием Races
, который будет использоваться для сохранения результатов для резервного драйвера в определенном автомобиле.
мышления в SQL я хотел бы сделать что-то вроде этого:
let mongoose = require('mongoose');
let raceSchema = new mongoose.Schema({
totaltime: String,
laptime: String,
driver: { type: Schema.Types.ObjectId, ref: 'Driver' },
car: { type: Schema.Types.ObjectId, ref: 'Car' }
});
module.exports = mongoose.model('Race', raceSchema);
Считаете ли вы, что это будет исправить подход в NoSQL или я принуждая свой SQL-образ мышления в NoSQL?
Хорошо, спасибо! Итак, комбинированная модель как для автомобиля, так и для водителя, которого вы говорите. Не могли бы вы включить и «thera» в эту модель? – RogerDore
Если вы можете тогда «да», снова модели должны быть спроектированы так, как вы спрашиваете, например, если вы часто запрашиваете вещи вместе, и они вписываются в 16 МБ (что достаточно для большинства случаев) – prasun