Mongodb Mongo Db:多阵列上的elemMatch查询

Mongodb Mongo Db:多阵列上的elemMatch查询,mongodb,Mongodb,请查看以下mongo Db的文档结构 { _id : 0, name : "Employee1", distributionList :[ { dlname : "ALLEmployee"}, {dlname:"financeall"} ], csrActivity : [ {activityname : "blooddonation"}, {activityname : "tree plantation"} ] } 我想要属于financeall分配列表的员工名单,并选择

请查看以下mongo Db的文档结构

{ _id : 0,
   name : "Employee1",
   distributionList :[ { dlname : "ALLEmployee"}, {dlname:"financeall"} ],
   csrActivity : [ {activityname : "blooddonation"}, {activityname : "tree plantation"} ]

}
我想要属于financeall分配列表的员工名单,并选择了志愿植树CSR活动

预期结果如下所示

{ _id : 0,
   name : "Employee1",
   distributionList :[{dlname:"financeall"} ],
   csrActivity : [  {activityname : "tree plantation"} ]
}
但到目前为止,我们还无法实现以下查询输出

查询

db.employee.find(
{name : "Employee1"},
{distributionList : {$eleMatch : {dlname : "financeall"}}}
)
输出

{ _id : 0,
   name : "Employee1",
   distributionList :[{dlname:"financeall"} ]
}
使用
$elemMatch
获得所需的输出,但找不到如何在同一文档中的多个数组上使用它。还尝试了某些组合,但未能获得预期的结果

下面的查询已尝试,但未获得所需的输出

db.employee.find(
   {name : "Employee1"},
   {distributionList : {$eleMatch : {dlname : "financeall"}}},
   {csrActivity: {$eleMatch : {activityname : "tree plantation"}}}
)

非常感谢您提供的任何帮助

您只是拼错了投影操作符
$elemMatch

正确的查询是:

db.employee.find(
  {
    name: "Employee1"
  }, {
    distributionList: {
        $elemMatch: {
            dlname: "financeall"
        }
    },
    csrActivity: {
        $elemMatch: {
            activityname: "tree plantation"
        }
    }
  }
)

尝试
db.employee.find({name:“Employee1”},{distributionList:{$elemMatch:{dlname:“financeall”}}},cspractivity:{$elemMatch:{activityname:{tree plantment:}}})
已经尝试了这个查询,并且更新了我的问题,它不起作用,请仔细查看查询。不一样。是的,很有效。谢谢你的帮助