【发布时间】:2020-05-15 16:59:31
【问题描述】:
如果我有这样的结构,那么: 我想更新dairyDailyLogs卡路里并根据条件在早餐中推送一个对象(条件以找到需要完成的对象位置)
"dairyDailyLogs":[
{
"breakfast":[
{
"mealType":1,
"mealId":"5d758afe89527212109703d1"
}
],
"calories":100,
"consumptionDateString":"5/15/2020"
},
{
"breakfast":[
{
"mealType":1,
"mealId":"5d758afe89527212109703d1"
}
],
"calories":100,
"consumptionDateString":"5/16/2020"
}
]
请帮忙!!
这是我进行的许多其他尝试中主要的两次尝试:
db.user_dairy.update({
"dairyDailyLogs.consumptionDateString": "5/15/2020"
},
{
$set: {
"dairyDailyLogs.$": {
"breakfast": [
{
mealType: 1,
mealId: "5d758afe89527212109703d1"
}
],
calories: 200,
consumptionDateString: "5/15/2020"
}
}
},
{});
和
db.user_dairy.updateOne({
"dairyDailyLogs.consumptionDateString": "5/15/2020"
},
{
$push: {
"dairyDailyLogs.$.breakfast": {
mealType: 2,
mealId: "5d758afe89527212109703d1"
}
},
$set: {
"dairyDailyLogs.$": {
calories: 200
}
}
},
{});
结果数组需要是这样的:
"dairyDailyLogs":[
{
"breakfast":[
{
"mealType":1,
"mealId":"5d758afe89527212109703d1"
},
{
"mealType":1,
"mealId":"5d758afe89527212109703d2"
}
],
"calories":200,
"consumptionDateString":"5/15/2020"
},
{
"breakfast":[
{
"mealType":1,
"mealId":"5d758afe89527212109703d1"
}
],
"calories":100,
"consumptionDateString":"5/16/2020"
}
]
【问题讨论】:
-
那么您的预期输出是什么?我也不明白你需要什么。更新
calories的条件是什么? -
请说明您的“条件”或要更新哪个数组的查询条件?
-
好的,所以我猜你已经检查了数组,我需要的是:我想更新卡路里键并想在早餐数组中推送一个对象,其中 "consumptionDateString":"5/15/2020"应该匹配这个或任何给定的日期..对不起!代码未格式化
-
这个数组已经是 mongo 文档的一部分,我正在寻找的是:用所需的条件更新这个子文档。我正在更新我的问题并为您提供操作后我想要的示例结果数组@igorkf
-
@jps 感谢您的链接...,感谢您从问题中删除我的紧急关键字,但我给了它更多的 2-3 小时,但仍然无法找到任何解决方案它在一个查询中..
标签: mongodb mongodb-query