簡體   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