我有一个看起来像这样的模式:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const timestamps = require('mongoose-timestamps');
const BidSchema = new Schema({
bidder: {
type: Schema.ObjectId,
ref: 'Buyer'
},
counterOffer: {
type: Schema.ObjectId,
ref: 'Counter_Offer'
},
box: {
type: Schema.ObjectId,
ref: 'Box'
},
status: {
type: String,
enum: ['Pending', 'Approved', 'Disapproved']
},
bidPrice: Number,
bidTimeout: {
type: Date,
default: Date.now
},
isAnonymous: Boolean,
});
BidSchema.plugin(timestamps);
module.exports = mongoose.model('Bid', BidSchema);
我想在Box
字段中存储多种数据类型。例如,我有一个Box
模型,也有一个GroupedBox
模型。我希望能够存储这两种模式的ID,并能够相应地填充此字段。例如,如果文档将存储引用GroupedBox
文档的ObjectId,则populate方法将获取正确的GroupedBox
文档。 Box
文档ID也是如此。
我了解了Mixed
个字段类型,但我看不到这对我有什么帮助。
答案 0 :(得分:0)
使用以下代码替换代码中的box
字段:
box: {
box: { type: Schema.Types.ObjectId, ref: 'Box' },
groupedBox : { type: Schema.Types.ObjectId, ref: 'GroupedBox' }
}
要填充box
,您需要使用类似populate("box.box")
的点groupedBox
来访问框,您要用populate("box.groupedBox")