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

Javascript 如何仅返回使用mongoose执行save()后创建的文档,javascript,node.js,mongoose,Javascript,Node.js,Mongoose,当我使用return wait Model.save()时,它们会返回大量数据。有没有办法只返回文档 代码: async(数据)=>{ const charData=新的MyModel({ steamId:data.steam, 电话:data.phone, 注册:data.registration, }) return wait MyModel.save() } 我在许多网站上搜索过,但没有找到任何使用异步函数的示例 有一个示例,MyModel.save()返回: 因此,当return w

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

代码:

async(数据)=>{
const charData=新的MyModel({
steamId:data.steam,
电话:data.phone,
注册:data.registration,
})
return wait MyModel.save()
}
我在许多网站上搜索过,但没有找到任何使用异步函数的示例

有一个示例,
MyModel.save()
返回:

因此,当
return wait wait MyModel.save()将mongoose文档转换为纯javascript对象表示时,我希望只获取_doc对象,而不是全部

async (data) =>{
    const charData = new MyModel({
        steamId: data.steam,
        phone: data.phone,
        registration: data.registration,
    })
    await charData.save()
    return charData.toObject({ getters: true })
}
请注意影响文档表示方式的选项:

  • getter
    应用所有getter(路径和虚拟getter),默认为false
  • 别名
    如果
    virtuals=true
    默认为true,则应用所有别名
  • virtuals
    应用虚拟getter(可以覆盖getter选项),默认为false
  • 最小化
    删除空对象,默认为true
  • transform
    返回前应用于结果文档的转换函数
  • 取消填充
    取消填充任何填充路径,并将其替换为原始引用,默认为false
  • versionKey
    是否包含版本密钥,默认为true
  • flattmaps
    将地图转换为POJO。如果要将toObject()的结果JSON.stringify()转换为默认值为false,则非常有用
  • useProjection
    设置为
    true
    以忽略此文档投影中排除的字段。除非指定了投影,否则此 将省略架构中具有
    select:false
    的任何字段
那就这样试试

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

假设您想要的“文档”是
.save
返回的任何内容的属性,
const x=wait MyModel.save();返回x.something
-其中
something
是“文件”-否则,您要的“文件”是什么?@JaromandaX,正如doc所说()他们返回兑现承诺。当我执行查询/查找()时,我正在寻找与.lean()相同的结果,正如它所说的
如果保存成功,返回的承诺将与保存的文档一起实现。
-因此,您正在返回保存的文档-您可能正在使用任何调用
async(data)=>{
错误地…你意识到你的函数返回一个承诺,因为
异步
函数返回一个承诺作为旁白…你永远不需要
返回等待某个承诺
-你可以
返回某个承诺
-事实上,在你的情况下,函数甚至不需要
异步
,因为你从来没有执行过lly需要
等待
-因此删除
异步
和删除
等待
,并确保无论调用什么函数都会这样做,并且预期的结果是Promise@JaromandaX我已经编辑了这个问题,并提供了我得到的结果。效果很好。我已经搜索了很多像你这样的例子。