我做了一个2 mongodb模式,其中一个依赖于另一个模式,我的两个看起来像这样
ownerSchema.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);
这是我的add函数
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();
};
问题是有时我不想要shopPlace数据它应该是空白的
但是我只从postman发送ownerId, fname, lname它不会保存在我的数据库中有没有可能如果我不想要shopPlace它仍然会保存数据到我的模式中它应该是可选的
在您的模型中,您可以设置shopPlace
的默认值如下:
shopPlace : {
type: Schema.Types.ObjectId,
ref: 'Shop',
default: null
}
因此,如果您在创建新的Owner
时不提供shopPlace
,则它将是null