mongoose 未获取路径类型:响应中的数组形式DB

voase2hg  于 2023-06-23  发布在  Go
关注(0)|答案(1)|浏览(84)

在获取post的模式时,我们无法获得响应的type:array的路径。但路径显示在DB中。
我的邮件提取代码

const post_modal = require("../../modals/post_model/postModel");

exports.fetchpost_control = async (req, res) => {
  try {

    const response = await post_modal.find().populate("comment").exec();

    res.json({response});

  } catch (e) {
    res.status(500).send({
      success: false,
      data: e.message,
      message: "Internal server error"
    });
  }
};

我的数据库状态

我在fetchpost的响应中得到了什么,在响应中我有

未获取comment等数组

g6baxovj

g6baxovj1#

在mongoose模式中,确保posts_fos文档中的comment键引用了comments集合。类似于:

comments: [{
            type: mongoose.Schema.Types.ObjectId,
            ref: 'comments_fos'
        }]

那么你的db查询就像这样:

const response = await post_modal.find().populate("comment").lean();

或者,如果你使用的是模型,你可以像这样传递模型:

const response = await post_modal.find().populate({ path: 'comment', model: commentModel }).lean();

关于使用populate的进一步说明可以在here中找到。

相关问题