Node.js Mongodb:用新版本替换数组比向数组中添加元素更有效吗?

Node.js Mongodb:用新版本替换数组比向数组中添加元素更有效吗?,node.js,mongodb,Node.js,Mongodb,我的服务器上有一个/update user端点,它会触发mongo上的updateUser查询 基本上,我通过cookie检索用户id,并在mongo查询中注入接收到的表单,该表单可以包含用户模型中允许的任何类型的密钥 它看起来像: const form={ 朋友:[{id:“1”,名字:“保罗”,缩略图:“www.imglink.com”}, {id:“2”,姓名:“joe”,缩略图:“www.imglink2.com”}, 地点:“恩”, 年龄:77 } 函数updateUser(表单,\

我的服务器上有一个
/update user
端点,它会触发mongo上的
updateUser
查询

基本上,我通过cookie检索用户id,并在mongo查询中注入接收到的表单,该表单可以包含用户模型中允许的任何类型的密钥

它看起来像:

const form={
朋友:[{id:“1”,名字:“保罗”,缩略图:“www.imglink.com”},
{id:“2”,姓名:“joe”,缩略图:“www.imglink2.com”},
地点:“恩”,
年龄:77
}
函数updateUser(表单,\u id){
const query=JSON.stringify(表单)
返回UserDB.findOneAndUpdate({u id},{$set:query})

}
从MongoDB的角度来看,这并不重要。MongoDB是一个日志数据库(特别是使用WiredTiger存储引擎),它可能会在更新时(重新)写入大部分文档。当在主副本和副本之间复制
oplog
时,在负载非常重的情况下,这可能会产生微小的差异,但是如果您有这样的性能限制,您就会知道。如果有疑问,请对您的生产系统进行基准测试和监控-不要过度优化


关注什么对业务领域最有利。您的应用程序是否具有协作性?多个用户是否同时编辑同一文档?当它们覆盖彼此的更改时会发生什么?客户端发送到后端的JSON是否很大,或者它们是否没有阻塞网络?这些是您应该问的最重要的问题,只有在确定了用户体验、交互模型和并发性问题之后,才能优化性能。

感谢您的完整回答。不,这只是一个单用户更新。更新配置文件的ux是一个分为小块的表单。每个块允许用户编辑其配置文件的一部分,并单独保存。因此,在“更新配置文件”会话期间,最多可以有7个不同的更新。最大的json可以是50个对象的数组,每个对象包含3个键。我不知道是不是太多了。我在请求正文中发送,没有表单数据。