$ addfield在Spesific Condiiton Mongodb
我现在有这些数据在汇总时,
[{_id: 1,
name:'Abraham',
class:'V',
question_answered:[{
id:'quest1',
answer:'A',
score:10,
question:{
soal:'apa judul lagu?',
correct_answer:'A',
type_question:'Essay'
}
},
{
id:'quest2'
answer:'C',
score:null,
question:{
soal:'apa judul lagu B?',
correct_answer:'B',
type_question:'Essay'
}
},
{
id:'quest3'
answer:'C',
score:10,
question:{
soal:'apa judul lagu C?',
correct_answer:'C',
type_question:'essay_pg'
}
},
]
}
]
我想添加条件 带有名称的AddField formated_status_evaluation_essay和formated_status_evaluation_essay_option,
条件:
IF(question_answer.question.type_question === 'Essay' && score !== null)
formated_status_evaluation_essay = 'already scoring'
Elseif(question_answer.question.type_question === 'Essay' && score === null)
formated_status_evaluation_essay = 'haven't scoring'
Elseif(question_answer.question.type_question === 'Essay' is not exists
formated_status_evaluation_essay = 'No essay question'
formation_status_evaluation_essay_option具有相同的条件,而evaluation_essay
soo soo预期的输出将就像如何
[{_id: 1,
name:'Abraham',
class:'V',
question_answered:[.........]
formated_status_evaluation_essay:'havent Scoring',
formated_status_evaluation_essay_option:'Already Scoring'
}
]
在MongoDB中编写正确的addfield来构成类似的输出? 谢谢我尝试了多种方式,但仍然没有答案。
我尝试了这个,但似乎我写了错误的语法
{
'$addFields': {
'formated_status_evaluation_essay': {
'$cond': [
{
'$and': [
{'$$question_answer.question.type_soal ':
'essay'},
{'$$question_answer.nilai':{$ne:null}},
]
},
'already scoring',
'havent scoring'
]
}
}
}
I have this data when get by aggregation
[{_id: 1,
name:'Abraham',
class:'V',
question_answered:[{
id:'quest1',
answer:'A',
score:10,
question:{
soal:'apa judul lagu?',
correct_answer:'A',
type_question:'Essay'
}
},
{
id:'quest2'
answer:'C',
score:null,
question:{
soal:'apa judul lagu B?',
correct_answer:'B',
type_question:'Essay'
}
},
{
id:'quest3'
answer:'C',
score:10,
question:{
soal:'apa judul lagu C?',
correct_answer:'C',
type_question:'essay_pg'
}
},
]
}
]
Now i want to addfield with condition
addfield with name
formated_status_evaluation_essay and formated_status_evaluation_essay_option,
with condition:
IF(question_answer.question.type_question === 'Essay' && score !== null)
formated_status_evaluation_essay = 'already scoring'
Elseif(question_answer.question.type_question === 'Essay' && score === null)
formated_status_evaluation_essay = 'haven't scoring'
Elseif(question_answer.question.type_question === 'Essay' is not exists
formated_status_evaluation_essay = 'No essay question'
formated_status_evaluation_essay_option is have same condition with evaluation_essay
Soo expected output would be like
[{_id: 1,
name:'Abraham',
class:'V',
question_answered:[.........]
formated_status_evaluation_essay:'havent Scoring',
formated_status_evaluation_essay_option:'Already Scoring'
}
]
How to write a correct addfield with condition in mongodb to make an output like that?
thanks before i've tried soo many ways but still got no answer.
i tried this but seems i put a wrong syntax
{
'$addFields': {
'formated_status_evaluation_essay': {
'$cond': [
{
'$and': [
{'$question_answer.question.type_soal ':
'essay'},
{'$question_answer.nilai':{$ne:null}},
]
},
'already scoring',
'havent scoring'
]
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
mongoplayground
mongoplayground