mongodb - 使用 findOneAndUpdate() 更新两个不同属性时的 MongoDB 语法
问题描述
当我想用相同的 findOneAndUpdate() 更新两个单独的属性时,我试图确定正确的 MongoDB 语法。这就是我所拥有的(它只更新第一个属性:
await Agency.findOneAndUpdate(
{
historicId: data.id_number
},
{
$set: {
"authorizations.supervisor": authorizationsSupervisor,
$push: {
"authorizations.policy": firstPolicyObj,
"authorizations.policy": secondPolicyObj,
"authorizations.policy": thirdPolicyObj
}
}
},
{
returnNewDocument: true
}
);
构造此语法的正确方法是什么?
文档模型如下所示:
{
_id: <ObjectId>,
otherProp: <value>,
authorizations: {
supervisor: <ObjectId>,
department: <value>,
policy: [
{
category: <value>,
requirements: [
{},
{}
]
}
]
}
}
解决方案
$set: {
"authorizations.supervisor": authorizationsSupervisor,
},
$push: {
"authorizations.policy": { $each: [ firstPolicyObj, secondPolicyObj, thirdPolicyObj]
}
推荐阅读
- module - 在 .py 文件中导入函数并通过调用 function_name 使用它们
- python - 使用 PIL 使用 Python 加载、旋转和替换图像
- php - Laravel - Mail::send() 如何将数据(以数组格式)传递到电子邮件 html 并发送
- python-3.x - 将特定的字典值分配给变量
- java - RecyclerView 在向下滚动时崩溃(IndexOutOfBoundsException:索引:2,大小:2)
- javascript - 使用 fetch 获取消息正文
- reactjs - 在 Reactjs 中将对象作为函数返回
- javascript - 通过 API 将大小数返回给 TypeScript 的正确方法是什么?
- angular - 将可观察数据输入其他可观察订阅
- flutter - 如何从外部使用 var SharedPreferences 函数 Flutter