Node.js mongoose填充方法不起作用是否有其他方法从另一个集合获取数据?

Node.js mongoose填充方法不起作用是否有其他方法从另一个集合获取数据?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,下面是我的模式 Product.js const Mongoose = require("mongoose"); const Schema = Mongoose.Schema; const { Types } = Schema; const Product = new Schema( { productName: { type: String, required: true, unique: true, trim:

下面是我的模式 Product.js

const Mongoose = require("mongoose");
const Schema = Mongoose.Schema;
const { Types } = Schema;

const Product = new Schema(
  {
    productName: {
      type: String,
      required: true,
      unique: true,
      trim: true,
    },
    description: {
      type: String,
      required: true,
    },
    price: {
      type: Number,
      required: true,
      maxlength: 32,
    },
    productType: {
      type: Types.ObjectId,
      ref: "Category",
      required: true,
    },
    stock: {
      type: Number,
      default: 0,
    },
    photo: {
      data: Buffer,
      contentType: String,
    },
  },
  { timestamps: true },
);

module.exports = Mongoose.model("Product", Product);
Category.js

const Mongoose = require("mongoose");
const Schema = Mongoose.Schema;

const Category = Schema(
  {
    name: {
      type: String,
      trim: true,
      required: true,
      maxlength: 32,
      unique: true,
    },
  },
  { timestamps: true },
);

module.exports = Mongoose.model("Category", Category);
我试图在getAllProducts方法中获取所有产品及其类别 但它总是在productType中返回ObjectId,而不是category对象。如何从类别集合中获取详细信息? 此代码有什么问题?

为什么填充不起作用0?

试试这个
wait Product.find().populate(“productType”),必须指定您提供的
ref
属性的字段名。非常感谢兄弟。我在所有的模式名和模型名中看到了50多个示例,这就是为什么我会产生这种混淆尝试这个
wait Product.find().populate(“productType”),必须指定您提供的
ref
属性的字段名。非常感谢兄弟。我在所有模式名和模型名中看到了50多个示例,这就是为什么我会产生这种混淆
exports.getAllProducts = async (req, res) => {

  var products = await Product.find().populate("Category");

  return res.send(products);
};