mongodb - 有没有办法只更新已发送的内容?
问题描述
这个问题与我相当新的 mongodb go 驱动程序有关。以下是我用于请求的更新参数。
update := bson.D{{"$set", bson.D{
{"firstName", person.FirstName},
{"lastName", person.LastName},
}}}
persons.FindOneAndUpdate(ctx, filter, update, opts).Decode(&updatedPerson)
这样做的问题是发送省略某个字段的请求会导致该字段被删除。例如,发送像 {"firstName": "Bob"} 这样的请求将删除现有的“lastName”字段(如果有的话)。
相反,如果我完全省略字段上的 $set 运算符,则即使在请求期间未传入该字段,该字段也不会受到影响。例如,如果未传递以下更新参数,则不会删除“lastName”字段。
update := bson.D{{"$set", bson.D{{"firstName", person.FirstName}}}}
我可以指定任何选项来更改此行为吗?期望的效果是一个忽略请求中任何未指定字段并仅更新请求正文中提供的字段的函数,类似于它与 mongoose 库 ( https://mongoosejs.com/docs/api. html#model_Model.findOneAndUpdate)。
解决方案
推荐阅读
- ruby-on-rails - Rails 迁移 - 将整数列更改为数组整数 - Postgres
- php - 当我在终端中键入 php artisan serve 时,我收到“需要 Mcrypt PHP 扩展”
- python - 过滤包含特定字符串的所有行的列
- java - 如何在 JLabel 中显示已保存在 JTable(带有 SLlite 数据库)上的图像?
- mysql - 使用 GROUP BY 的多个 JOINS 在 MYSQL 中返回错误数据
- flutter - Flutter Webview 表单发布
- python - 如何用python搜索相关词
- vue.js - 如何从 vue.js 中的方法添加到数组?
- c# - 如何将错误从 TypeConverter 传递到 ModelState 错误
- javascript - 在没有 ES6 的 React 中导出和导入类