mongodb - Mongoose 使用其他字段的值更新值
问题描述
我可以findOneAndUpdate
用本文档中的其他值更新 中的值吗?
我的数据结构看起来像
User: {
email: "test@mail.com",
test: {
token: "someFancyToken",
email: "other-email@test.com"
}
}
我希望如何更改数据
await UserModel.findOneAndUpdate(
{
'test.token': token,
},
{
email: test.email,
test: null
},
)
输出
User: {
email: "other-email@test.com",
test: null
}
解决方案
从 MongoDB 4.2 开始,您可以使用聚合管道进行更新操作,因此您可以执行以下操作:
await UserModel.findOneAndUpdate(
{ 'test.token': token },
[{ $set: { email: "$test.email", test: null } }]
)
推荐阅读
- bash - BASH/sed 从文本文件中的逐行单词列表中删除重复项
- fabricjs - 添加 resizeFilter 会使图像消失
- css - 将样式应用于浏览器中的 ng2-pdf-viewer 文档
- android - 今天突然开始收到“找不到intellij-core.jar”
- c# - Azure 函数从服务总线两次读取队列消息
- r - 如何从 mysql 数据库自动更新闪亮仪表板中的数据?
- lua - 意外的“表索引为nan”错误lua
- python - 使用竞争网络寻找集群的算法
- octobercms - 十月 CMS 与自我的关系
- react-native - React Native 如何显示直播视频