Mongodb 将mongoose的响应格式化为模型

Mongodb 将mongoose的响应格式化为模型,mongodb,express,Mongodb,Express,如何格式化来自mongoose的数据响应?对于简单的Post模式 const postSchema = new mongoose.Schema({ title: { type: String, required: true, } },{ timestamps: true }); 每当我执行GET请求以查找所有文章时,它都会返回其所有字段,包括\u id和\u v,在这些字段中,我不希望在API中返回这些字段 是否有一种方法可以只选择我想返回的某些字段 据我所知,我可

如何格式化来自mongoose的数据响应?对于简单的Post模式

const postSchema = new mongoose.Schema({
  title: {
    type: String,
    required: true,
  }
},{
  timestamps: true
});
每当我执行GET请求以查找所有文章时,它都会返回其所有字段,包括
\u id
\u v
,在这些字段中,我不希望在API中返回这些字段

是否有一种方法可以只选择我想返回的某些字段

据我所知,我可以在查询中设置第二个参数
title
,它只返回
\u id
title

const post  = await Post.find({},'title');
我发现上面的方法不是筛选字段的合适方法,将来如果值是深度嵌套的对象,并且我们希望选择某些值


是否有一种方法可以创建模型/类,并根据模型/类选择字段并返回响应?

您可以使用
猫鼬中选择

您可以只选择所需的字段

var find=wait model.find({})。选择(“my_字段”)
或者不显示不需要的字段

var find=await model.find({})。选择(“-my_字段”)

检查

,或者可以使用
find()排除不需要的内容。选择('-\u v')
。然后返回除
\uu v
或您在其中输入的任何键以外的所有其他内容。例如:
find()。如果要排除
\u id
\u v
的话,请选择('-\u id-\u v')
,这也适用于
find()。填充('-\u id-\u v')
。第一个参数是
key
,您可以
ref
到其他模式,而第二个参数是您想要或想要排除的
key
,这取决于您的用例。如果你想拥有一个真正动态且随时变化的东西(查询),那么GraphQL的合并将使这项工作变得非常出色。这似乎是一个简单模型的答案,但如果模型更复杂,我可能会合并@lala提到的GraphQL