我有2种猫鼬模式,一种用于stock
(有关股票的信息),另一种用于trade
。这里的交易代表stock
的交易(因此,时间,数量等)。每个stock
都有一个符号代码,而我从中获得交易的数据馈送将这些符号代码包括为字符串。因为我在这里不能使用常规猫鼬'ref'
,所以我将如何填充这两个集合。
这是我的两个模式:
const stockSchema = new Schema({
symbolCode: { type: String, trim: true },
symbol: { type: String, trim: true },
type: { type: String, index: true, trim: true },
country: { type: String, lowercase: true }
})
const tradeSchema = new Schema({
symbolCode: { type: String, index: true },
symbol: { type: String, index: true },
price: Number,
volume: Number,
time: Date,
currency: { type: String, default: 'USD', uppercase: true, index: true }
})
我想删除trade
模式中的前两个字段,以便在这里可以对股票有某种参考。我该怎么办?
答案 0 :(得分:1)
像这样使用填充:
MyModel.populate([{ path: 'author', select: 'username name -_id' }]);
-fieldName
或您的情况下,-_id
将从投影中扣除。
答案 1 :(得分:0)
为将来参考,我使用populate virtuals来解决此问题,如下所示:
stockSchema.virtual('trades', {
ref: 'Trade',
localField: 'symbolCode',
foreignField: 'symbolCode',
justOne: true
})