繁体   English   中英

如何仅返回在使用 mongoose 执行 save() 后创建的文档

[英]How return only document created after perform save() with mongoose

当我使用return await Model.save()时,它们会返回大量数据。 有没有办法只返回文件?

代码:

async (data) =>{
    const charData = new MyModel({
        steamId: data.steam,
        phone: data.phone,
        registration: data.registration,
    })
    return await MyModel.save()
}

我在很多网站上搜索过,但没有找到任何使用异步函数的示例。

有一个MyModel.save()返回的例子: MyModel.save() 返回

所以,我只想在return await MyModel.save()时获取 _doc object 而不是全部

Document.prototype.toObject()将 mongoose 文档转换为普通的 javascript object 表示。

async (data) =>{
    const charData = new MyModel({
        steamId: data.steam,
        phone: data.phone,
        registration: data.registration,
    })
    await charData.save()
    return charData.toObject({ getters: true })
}

请注意影响文档表示方式的选项:

  • getters应用所有 getters(路径和虚拟 getters),默认为 false
  • 如果virtuals=truealiases应用所有别名,默认为 true
  • virtuals应用虚拟 getters(可以覆盖 getters 选项),默认为 false
  • minimize移除空对象,默认为 true
  • transform转换 function 以在返回之前应用于生成的文档
  • depopulate depopulate 任何已填充的路径,将它们替换为原始引用,默认为 false
  • versionKey是否包含版本密钥,默认为 true
  • flattenMaps将地图转换为 POJO。 如果你想 JSON.stringify() toObject() 的结果很有用,默认为 false
  • useProjection设置为true以忽略本文档投影中排除的字段。 除非您指定投影,否则这将忽略架构中具有select: false的任何字段。

然后像这样尝试

let res = await Model.save();
return res._doc;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM