如何填充嵌入式文档的字段?

How to populate field of an embedded document?

我有一个 OrderSchema,其中包含作为嵌入式模式的“发票”。我想从嵌套模式填充一个字段(“系列”)。

架构如下所示:

    const OrderSchema = new Schema({
        success: {
            type: Boolean,
        },
        invoice: {
            type: new Schema({
                series: {
                    // NEEDS TO POPULATE
                    type: Schema.Types.ObjectId,
                    ref: "Series",
                    required: true,
                },
                number: {
                    type: Number,
                    required: true,
                },
            }, { 
                _id: false,
                timestamps: false 
            }),
            required: true,
        },
    });

在这里,我需要填充路径“invoice.series”。我怎样才能做到这一点?

你可以这样填充它

  OrderModel.find(query)
  .populate({ 
     path: 'invoice',
     populate: {
       path: 'series',
     } 
  })
  .exec(function(err, docs) {});

或者您可以选择这样做...

OrderModel.find(query)
      .populate("invoice.series")
      .exec(function(err, docs) {});