【发布时间】:2019-03-05 09:32:12
【问题描述】:
我在 mongo 中有这个数据集
{
_id: {
question_id: 3
},
data: {
answer: 11,
count: 114,
result: [
{
_id: 3,
question: "What is your age group?",
options: [
{
id: 10,
option: "<18"
},
{
id: 11,
option: "18-24"
},
{
id: 12,
option: "24-35"
},
{
id: 13,
option: ">35"
}
],
type: "Radio"
}
]
}
},
在这里我想在answer 和result.options.id 之间执行equals to 检查,如果值匹配,它应该返回result.options.option
这样想要的结果就是
{
_id: {
question_id: 3
},
data: {
answer:'18-24',
count: 114,
}
},
到目前为止我已经尝试过这个
'$project'=>[
'res'=>[
'$map'=>[
'input'=>'$data.result.options',
'as'=>'dt',
'in'=>[
'$cond'=>[
'if'=>[
'$eq'=>[
'$$dt.id',
'$data.answer'
]
],
'then'=>'$$dt.option',
'else'=>'$$dt.id'
]
]
]
]
]
关于我做错了什么的任何线索。我的代码总是返回 else 语句
【问题讨论】:
标签: php mongodb mongodb-query aggregation-framework