【发布时间】:2021-09-19 01:41:30
【问题描述】:
我知道我可以在 update 中使用管道聚合器来用另一个字段的值更新一个值的字段。但是,我的问题是根据嵌套字段的值更新字段值时。更新的结果总是发出带有括号的新字段。我不想要括号/数组,我只想让它成为一个值。请参阅下面的代码 https://mongoplayground.net/p/7ZDP8CYtKK3
db={
"players": [
{
"_id": ObjectId("5fba17c1c4566e57fafdcd7e"),
"username": "moshe",
"health": 0,
"maxHealth": 200,
"Chapters": [
{"Cat A": 25,
"Cat B": 100,
"Cat C": 125}]
}
]
}
这是我在下面应用的查询
db.players.update(
{username: "moshe"},
[{"$set": {"health": "$Chapters.Cat A"}}]
)
结果产生
[{"Chapters": [
{"Cat A": 25,
"Cat B": 100,
"Cat C": 125}],
"_id": ObjectId("5fba17c1c4566e57fafdcd7e"),
"health": [25],
"maxHealth": 200,
"username": "moshe"
}]
我想要的是健康更新显示不带数组括号......"health":25
这又是一个基于我正在使用的更大数据库的示例。
【问题讨论】:
标签: arrays mongodb nested aggregation-framework pymongo