无法读取 mongodb 中的 null 属性“填充”

时间:2021-06-16 08:01:32

标签: javascript mongodb mongoose

当我在数组中填充对象值时会发生此错误

Cannot read property 'populated' of null in mongodb

当我评论 .populate("items.item") 时它起作用了

这是我的架构

const mongoose = require("mongoose");
const { s, rs, rref, rn, n } = require("../utils/mongo");

var schema = new mongoose.Schema(
  {
    store: rref("user"),
    customer: rref("user"),
    status: {
      ...s,
      default: "pending",
      enum: ["pending", "proccessing", "shipped", "delivered", "cancelled"],
    },
    items: [
      {
        item: rref("product"),
        count: rn,
        size: s,
      },
    ],
    msgCounter: {
      ...n,
      default: 0,
    },
  },
  { timestamps: true }
);

module.exports = mongoose.model("order", schema);

这是控制器

module.exports = {
  getAll: async (req, res) => {
    let {_id} = req.user;

    if (!user) return res.status(401).send("Access Denied");
    
    const orders = await Order.find({ store: _id })
        .populate("store")
        .populate("customer")
        .populate("items.item") // if comment this population everything is right
        .sort({ updatedAt: -1 });

    res.send(orders);
  },
}

0 个答案:

没有答案