Hice un esquema de 2 mongodb en el que uno depende de otro esquema y ambos se ven así
propietarioEsquema.js
var ownerSchema = Schema({ ownerId : String, fname : String, lname : String, shopPlace : { type: Schema.Types.ObjectId, ref: 'Shop' }, shopType String }); var Owner = mongoose.model('Owner', ownerSchema);shopSchema.js
var shopSchema = Schema({ _id : String, shopName : String, location : String, startDate : Date, endDate : Date }); var Shop = mongoose.model('Shop', shopSchema);y esta es mi función de agregar
const addOwner = async (req, res) => { const { shopName, shopLocation } = req.body.shopPlace; const shop = new Shop({ shopName, shopLocation, }); await shop.save(); const { ownerId, fname, lname } = req.body; const newOwner = new Owner({ ownerId, fname, lname, shopPlace: shop._id, }); await newOwner.save(); };El problema es que a veces no quiero datos de ShopPlace, debe estar en blanco
pero estoy enviando solo OwnerId, fname, lname del cartero. No se guarda en mi base de datos. ¿Hay alguna forma posible de que, si no quiero shopPlace, todavía debería guardar datos en mi esquema, debería ser opcional?
En su modelo, puede establecer un valor predeterminado para shopPlace de la siguiente manera:
shopPlace : { type: Schema.Types.ObjectId, ref: 'Shop', default: null } Por lo tanto, si no proporciona shopPlace cuando crea un nuevo Owner , será null