如何在Mongodb java驱动程序中获取ArrayOfObjects数组的值

如何在Mongodb java驱动程序中获取ArrayOfObjects数组的值,java,spring-boot,mongodb-java,Java,Spring Boot,Mongodb Java,我的文档如下所示。我需要获得Email Systems.Bob和Email Systems.System=Bob的值。我尝试了下面的MongodbQuery,但没有得到正确的结果。任何人都可以建议如何使用Mongodb Java驱动程序获得所需的结果。 查询: db.users.find( {“电子邮件系统”:{$elemMatch:{$eq:“Atlas”}}} 要获取电子邮件系统.Bob,您可以使用以下查询: db.users.find({ "Email Systems.Bob&q

我的文档如下所示。我需要获得Email Systems.Bob和Email Systems.System=Bob的值。我尝试了下面的MongodbQuery,但没有得到正确的结果。任何人都可以建议如何使用Mongodb Java驱动程序获得所需的结果。 查询: db.users.find( {“电子邮件系统”:{$elemMatch:{$eq:“Atlas”}}}


要获取
电子邮件系统.Bob
,您可以使用以下查询:

db.users.find({ "Email Systems.Bob": { $exists: true} })

获取
电子邮件系统[].{dynamic key}.System=='Bob'

我认为不可能在查询中为动态键传递某种regex,AFAIK

在这里,您可以使用字段
电子邮件系统
获取所有文档,并在java代码中对其进行过滤。(但效率不高)


您尝试了哪些查询但没有成功?它们是否直接在DB中工作,而您没有使用java驱动程序?我在DB和java驱动程序中都尝试过,但都不起作用。动态地,我需要获取系统值(Email systems.Bob),如果它与输入get request参数匹配,则将应用以下逻辑。您可以帮助我获取Bob的java语法吗,Craft values谢谢您的回复。您可以帮助我获取db.users.find的java语法吗({“Email systems.Bob”:{$exists:true})
db.users.find({ "Email Systems.Bob": { $exists: true} })
db.users.find({ "Email Systems": { $exists: true} })