不使用_id填充

时间:2018-12-24 11:18:44

标签: mongodb mongoose mongoose-populate

我有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模式中的前两个字段,以便在这里可以对股票有某种参考。我该怎么办?

2 个答案:

答案 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
})