弃用警告

MongoDB Node.js 驱动程序 中有几个弃用,Mongoose 用户应该注意。Mongoose 提供了绕过这些弃用警告的选项,但您需要测试这些选项是否会对您的应用程序造成任何问题。请 在 GitHub 上报告任何问题

摘要

要修复所有弃用警告,请按照以下步骤操作

  • findOneAndUpdate()findOneAndReplace()findOneAndDelete() 调用中,将 rawResult: true 替换为 includeResultMetadata: true

阅读以下内容,以更详细地了解每个弃用警告。

rawResult

从 Mongoose 7.4.0 开始,findOneAndUpdate()rawResult 选项已弃用。您应该改用 includeResultMetadata 选项,这是 MongoDB Node.js 驱动程序的新选项,它取代了 rawResult

// Replace this:
const doc = await Test.findOneAndUpdate(
  { name: 'Test' },
  { name: 'Test Testerson' },
  { rawResult: true }
);

// With this:
const doc = await Test.findOneAndUpdate(
  { name: 'Test' },
  { name: 'Test Testerson' },
  { includeResultMetadata: true }
);

rawResult 选项只影响 Mongoose;MongoDB Node.js 驱动程序仍然返回完整的結果元數據,Mongoose 只會解析出原始文檔。includeResultMetadata 选项还会告诉 MongoDB Node.js 驱动程序只返回文档,而不是完整的 ModifyResult 对象。