使用Mongodb 3.6,仅当第一个条件满足另一个数组中的同一文档时,才需要获取子数组的数据。
对于一个标识代码,我在同一文档中有不同阶段的数据作为子数组。喜欢:
第一个文档:
{
"currentStage" : "STAGE4",
"stagesData" : [
{
"name" : "STAGE4",
"log" : {
"who" : "dummy",
"when" : "2018-10-15T06:30:50.000+0000"
}
},
{
"name" : "STAGE3",
"log" : {
"who" : "dummy",
"when" : "2018-10-12T08:48:32.000+0000"
}
},
{
"name" : "STAGE2",
"log" : {
"who" : "test",
"when" : "2018-10-11T07:12:34.000+0000"
}
},
{
"name" : "STAGE1",
"log" : {
"who" : "dummy",
"when" : "2018-10-09T09:34:54.000+0000"
}
}
],
"identification" : {
"code" : "Code2",
"Description" : "Desc2"
}}
第二文档:
{
"currentStage" : "STAGE2",
"stagesData" : [
{
"name" : "STAGE2",
"log" : {
"who" : "dummy",
"when" : "2018-10-12T10:41:15.000+0000"
}
},
{
"name" : "STAGE1",
"log" : {
"who" : "test",
"when" : "2018-10-11T09:34:53.000+0000"
}
}
],
"identification" : {
"code" : "Code1",
"Description" : "Desc1"
}}
现在,在MongoDB中,我需要找出 STAGE2 ON 2018-10-11 中的记录的标识,代码和标识。 因此,根据给定的数据,我应该只获得第一个文档,但是我同时获得了两个文档。 基本上,它应该搜索记录是否在STAGE2中,然后仅对同一文档的子数组应用下一个过滤器。但是在这种情况下,两个文档中的某个地方都将stageData.name命名为STAGE2,而log.when则将其命名为2018-10-11,而不是在同一文档中。
查询语句
预期产量
当前输出
我需要将两个过滤器应用于同一文档。 需要您的帮助来实现这一目标。希望我能解释清楚。