【发布时间】:2021-11-12 20:54:09
【问题描述】:
{
"_id": 1,
"user_response": [
{
"question_name": "Gender ?",
"question_numeric_id": 1,
"question_answer": "Male"
},
{
"question_name": "City ?",
"question_numeric_id": 2,
"question_answer": "GJ"
},
{
"question_name": "Country ?",
"question_numeric_id": 3,
"question_answer": "India"
}
]
}
{
"_id": 2,
"user_response": [
{
"question_name": "Gender ?",
"question_numeric_id": 1,
"question_answer": "Female"
},
{
"question_name": "State ?",
"question_numeric_id": 2,
"question_answer": "GJ"
},
{
"question_name": "Country ?",
"question_numeric_id": 3,
"question_answer": "India"
}
]
}
{
"_id": 3,
"user_response": [
{
"question_name": "Gender ?",
"question_numeric_id": 1,
"question_answer": "Male"
},
{
"question_name": "State ?",
"question_numeric_id": 2,
"question_answer": "GJ"
},
{
"question_name": "Country ?",
"question_numeric_id": 3,
"question_answer": "India"
}
]
}
{
"_id": 4,
"user_response": [
{
"question_name": "Gender ?",
"question_numeric_id": 1,
"question_answer": "Other"
},
{
"question_name": "State ?",
"question_numeric_id": 2,
"question_answer": "MP"
},
{
"question_name": "Country ?",
"question_numeric_id": 3,
"question_answer": "India"
}
]
}
情况就像我必须对 Array 的多个字段进行条件处理。例如:
question_numeric_id : 1 AND question_answer : 男性 和 question_numeric_id : 2 AND question_answer : MP
所以,输出应该是:
{
"_id": 1,
"user_response": [
{
"question_name": "Gender ?""question_numeric_id": 1,
"question_answer": "Male"
},
{
"question_name": "City ?""question_numeric_id": 2,
"question_answer": "GJ"
},
{
"question_name": "Country ?""question_numeric_id": 3,
"question_answer": "India"
}
]
}
{
"_id": 3,
"user_response": [
{
"question_name": "Gender ?""question_numeric_id": 1,
"question_answer": "Male"
},
{
"question_name": "State ?""question_numeric_id": 2,
"question_answer": "GJ"
},
{
"question_name": "Country ?""question_numeric_id": 3,
"question_answer": "India"
}
]
}
我尝试了很多使用 elementMatch 和 unwind 的方法,但都没有成功。 unwinds 和 elementMatch 仅适用于单个数组元素。 如果你们能帮我解决这个问题,我将不胜感激。谢谢
注意: 请给出一个使用聚合的解决方案。
【问题讨论】:
-
欢迎您,请在您的问题中添加您的尝试,以改善您的体验,请使用tour 并阅读how to ask 一个好问题。
-
question_numeric_id:1 AND question_answer:男性 AND question_numeric_id:2 AND question_answer:MP。我认为你需要检查你的输出。如果你想要这个过滤器,输出将没有任何文档。因为 question_numeric_id : 2 AND question_answer : MP 没有出现在 id 1 和 3 的文档中。
-
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
标签: arrays mongodb mongodb-query aggregation-framework pymongo