У меня есть коллекция, например CustomerSchema
как показано ниже
const CustomerSchema = new mongoose.Schema({
name:String,
vehicleTypes:[{
type:mongoose.Schema.Types.ObjectId,
ref:'VehicleType'
}]
})
и VehicleTypeSchema
как показано ниже
const VehicleTypeSchema = new mongoose.Schema({
description:String,
rate1:Number,
rate2:Number
})
Теперь я хотел бы сохранить CustomerSchema
как
const Customer = mongoose.model('Customer',CustomerSchema);
const VehicleType = mongoose.model('VehicleType',VehicleTypeSchema)
const customerDoc = new Customer(somevalidobject);
customerDoc.vehicleTypes=[];
customerDoc.vehicleTypes.push(new VehicleType(vehicleTypeObject));
customerDoc.save();
, который должен хранить objectId для vehicleType в массиве VehicleTypes клиента, а также хранить VehicleType в соответствующей коллекции.
Это похоже на каскадирование Hibernate в Java.
Is это возможно в понедельник goose?
После просмотра документации я понимаю, что могу указать свой массив vehicleTypes
в CustomerSchema
как
const CustomerSchema = new mongoose.Schema({
name:String,
vehicleTypes:[VehicleType]
})
, что приведет к тому, что он будет хранится как субдокумент в документе Customer
.
Если невозможно добиться сохранения в каскадном стиле, есть ли способ сделать это с помощью транзакций mon goose (например, с помощью помощника withTransaction).