i有一个问题,我不能自己解决。我有一个数据在mongo数据库,我想更新特定的值,我显示代码和图像,我想要的是更新特定的对象(最小属性),我怎么能更新它?
await user.findOneAndUpdate({ name: "liori", decibelHistory : {$elemMatch : {min : 10}}}, {$set : {"decibelHistory.$.min" : 1}});
{
"_id": {
"$oid": "638a09cf5f1e5156db8fc5f8"
},
"name": "liori",
"password": "liori",
"decibelHistory": [
{
"test1": [
{
"max": 90,
"min": 10,
"avg": 35
}
]
},
{
"test2": [
{
"max": 80,
"min": 20,
"avg": 30
}
]
}
],
"timeLapse": 1200,
"__v": 0
}
1条答案
按热度按时间tp5buhyn1#
要更新decibelHistory数组中的特定对象,可以在findOneAndUpdate()查询中使用**$set和$elemMatch**运算符。
$set运算符用于为指定字段指定新值,在本例中为decibelHistory数组的min属性。$elemMatch运算符用于匹配decibelHistory数组中要更新的特定对象。
以下是如何使用这些运算符更新min属性的示例:
此查询将更新decibelHistory数组中min属性值为10的对象的min属性,并将其新值设置为1。
我希望这对你有帮助!
编辑:如果仍然无法正常工作,请检查一些潜在问题: