mongodb - 如何更新对象数组的对象值?
问题描述
以下代码没有更新书名,如何实现我更新书名的目标?
user: {
_id: "123",
books: [{ title: "ABC", pages: 99 }],
}
await model.updateOne(
{
_id: userID,
"books._id": bookID,
},
{ book: { title: "" } }
);
解决方案
从您的场景中,您需要arrayFilters
.
db.collection.update({
_id: "123" //userID
},
{
$set: {
"books.$[book].title": ""
}
},
{
arrayFilters: [
{
"book._id": "1" //bookID
}
]
})
参考
推荐阅读
- c++ - 计算时间和空间复杂度的问题?
- react-native - 用户注销时如何重置redux store的状态?
- google-tag-manager - 阻止从谷歌标签管理器加载 youtube 相关的 JS
- cadence-workflow - 有条件地执行活动
- amazon-web-services - AWS s3 生命周期策略
- python - 什么 channel_argument 会以与 grpc 客户端调用中的 timeout 参数等效的方式设置超时?
- python - 如何在 Python 中的泛型类型上使用 isinstance
- python - 无法在 Jupyter 笔记本中使用 arcgis 包
- r - unserialize(node$con) 中的错误:无法检索 MultisessionFuture (future_lapply-1) 的值
- snowflake-cloud-data-platform - 雪花 sql udtf 连接性能