猫鼬反向填充不返回关联模型

时间:2019-07-09 07:13:11

标签: node.js mongodb mongoose

我正尝试使用Mongoose和“虚拟填充”进行反向填充,如库文档(https://mongoosejs.com/docs/populate.html#populate-virtuals)所述,但我无法使其正常工作。

我不确定自己在做什么错,我认为我在关注文档

let Schema = mongoose.Schema;
let VehicleSchema = new Schema(
  {
    model: {
      type: Schema.Types.ObjectId,
      ref: "VehicleModel",
      required: true
    },
  // Some Other Properties Not Relevant ...
  },
  {
    autoIndex: true,
    versionKey: false,
    toJSON: { virtuals: true }
  }
);

let Vehicle = mongoose.model("Vehicle", VehicleSchema);

let ModelSchema = new Schema(
  {
    name: { type: String, required: true },
  // Some Other Properties Not Relevant ...
  },
  {
    autoIndex: true,
    versionKey: false,
    toJSON: { virtuals: true }
  }
);

// Virtual for vehicleModel's vehicles
VehicleModelSchema.virtual("vehicle", {
  ref: "Vehicle",
  localField: "_id",
  foreignField: "model",
  justOne: true
});
let VehicleModel = mongoose.model("VehicleModel", VehicleModelSchema);


// This Works, Returns Vehicle With Its Model
Vehicle.findOne(vehicleId).populate("model").exec((err, vehicle) => {
console.log(vehicle)
});

// This Doesn't Work, Returns Model Without Vehicle
VehicleModel.findOne(vehicleModelId).populate("vehicle").exec((err, vehicleModel) => {
console.log(vehicleModel)
});


我希望VehicleModel.findOne(vehicleModelId).populate(“ vehicle”)会返回该VehicleModel及其车辆

0 个答案:

没有答案
相关问题