mongodb - 从另一个数组中删除数组元素
问题描述
我有一个 MongoDB 对象,例如:
{
"courseName": "ML",
"user": ObjectId("6087dc4c2ba7a828363c9fca"),
"questions": [
{
"topics": [
"a","b"
],
},
{
"topics": [
"a","b","d"
],
}
]
}
我想找到问题courseName
和user
问题,我想删除与输入主题匹配的主题。
我怎样才能做到这一点?
如果我的输入是,["a"]
那么更新输出应该如下所示:
{
"courseName": "ML",
"user": ObjectId("6087dc4c2ba7a828363c9fca"),
"questions": [
{
"topics": [
"b"
],
},
{
"topics": [
"b","d"
],
}
]
}
解决方案
$[]
所有元素的位置questions
并由$in
操作员检查条件
db.collection.updateMany(
{
"courseName": "ML",
"user": ObjectId("6087dc4c2ba7a828363c9fca"),
"questions.topics": { $in: ["a"] }
},
{
$pull: {
"questions.$[].topics": { $in: ["a"] }
}
}
)
推荐阅读
- android - Navigation component navigate inside a onActivityResult not working
- sql - Ruby on Rails, ActiveRecord query (boss can see the gratitudes that his employees have received.)
- r - 可视化 PAM 集群
- c# - Seq serilog 指定/覆盖日志序列化
- python - 从给定的一组数字中找出适用于某些规则的所有组合
- python - 如何在熊猫数据框中按升序对所有列进行独立排序?
- java - HTTP Get - Python vs Spring Rest 模板
- python - ITEM 在 python FOR 循环中是变量
- java - 使用 Spring 禁用 redis 缓存,redission 客户端 - 没有 Spring 启动
- python - 从一个栅格中提取坐标并使用它们从另一个栅格中提取值