【问题标题】:What is the best practice for updating data via mongoose? [closed]通过猫鼬更新数据的最佳实践是什么? [关闭]
【发布时间】:2021-10-01 14:12:25
【问题描述】:

有两种方法可以使用 mongoose 更新数据。

  1. 使用模型方法,例如User.updateOne({username}, {$set: {age}})
  2. 找到文档,然后更改其属性并保存。像这样:
const user = await User.findById(userId)
user.age = age
user.save()

哪个更好,为什么?

【问题讨论】:

  • 第一种方法进行一次数据库调用,第二种方法进行两次。我让您计算数千或数百万次操作的成本。

标签: javascript node.js mongodb mongoose


【解决方案1】:

对于.save() 方法,它实际上是将数据从服务器(MongoDB)拉到客户端(Mongoose)并更新内存中的数据,然后在服务器中应用查询。 使用直接updateupdateOne 将直接在服务器上执行查询。

因此,请确保尽可能多地使用查询。在这两种情况下,您都可以通过执行 console.time 手动检查 喜欢

console.time('query')
const user = await User.findById(userId)
user.age = age
await user.save()
console.timeEnd('query')

然后这样做

console.time('query')
await User.updateOne({ _id: userId }, { $set: { age } })
console.timeEnd('query')

【讨论】:

  • 我相信你应该使用await user.save(),因为你正在计时
  • 是的,很抱歉这个错误
  • 谢谢!很清楚
  • 考虑标记为已回答 :)
猜你喜欢
  • 2018-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-09
  • 2010-09-07
  • 2014-01-28
  • 2023-04-10
相关资源
最近更新 更多