我的文档如下所示,需要获取电子邮件Systems.Bob的值,电子邮件Systems.System = Bob .I已经尝试了以下MongodbQuery,但没有得到正确的结果,您可以建议如何使用Mongodb .Any驱动程序获得所需的结果。查询: db.users.find( {“邮件系统”:{ $elemMatch:{$eq:"Atlas"} }} );
{
"_id" : ObjectId("5f0890e870e631865877e"),
"user" : "testuser",
"Email" : "testuser@sample.com",
"Batch Systems" : [
"STAR",
"STORY",
"ITEMS",
],
"Email Systems" : [
{
"Bob" : {
"System" : "Bob",
**"result"** : true
}
},
{
"Wild" : {
"System" : "Wild",
"result" : true
}
},
{
"CRaft" : {
"System" : "Craft",
"result" : false
}
}
]
}发布于 2020-10-22 16:26:45
要获取Email Systems.Bob,可以使用以下查询:
db.users.find({ "Email Systems.Bob": { $exists: true} })来获取Email Systems[].{dynamic-key}.System == 'Bob'。
我认为在查询AFAIK中传递某种动态键的正则表达式是不可能的。
在这里,您可以获取所有带有字段Email Systems的文档,并在java代码中对其进行过滤。(虽然效率不高)
db.users.find({ "Email Systems": { $exists: true} })https://stackoverflow.com/questions/64477532
复制相似问题