繁体   English   中英

如何在 Mongodb-java 驱动程序中获取 Arrays ArrayOfObjects 的值

[英]How do I get the value of Arrays ArrayOfObjects in Mongodb-java driver

我的文档如下所示。我需要获取 Email Systems.Bob 和 Email Systems.System = Bob 的值。我尝试使用下面的 MongodbQuery 但没有得到正确的结果。任何人都可以建议如何使用 Mongodb 获得所需的结果Java 驱动程序。 查询:db.users.find( { "Email Systems": { $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
            }
        }
    ]
}

要获取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} })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM