使用java

时间:2016-11-24 04:34:40

标签: java mongodb

这是数据库中的两个不同的集合。我无法弄清楚如何使用java从集合中动态获取值。

我想通过java程序获取值,但不使用 硬编码的值,如“VerifyEmail.LicenseKey”& “wsf:status.arg0.age”如上所述在java代码中。有一种方法可以在java中获取没有硬编码的值。

收集1:

{
"_id" : ObjectId("583567ac6c85e71adc1f8bae"),
"wsf:status" : {
    "arg0" : {
        "name" : "James",
        "phonenum" : NumberLong(9848222338),
        "age" : 18
        "status" : "N" 
       }
   },
 }

查询1: 在这里,我使用硬编码值从集合1中获取所需的结果。

db.xmlcoll1.find({"wsf:status.arg0.age":18})

收集2:

{
"_id" : ObjectId("582446686c85e73a70696666"),

"VerifyEmail" : {
    "xmlns" : "http://ws.cdyne.com/",
    "email" : "james@yahoo.com",
    "LicenseKey" : 123
} }

查询2:

这里我使用元素“VerifyEmail”的硬编码值 获取值。

db.xmlcoll.find({"VerifyEmail.LicenseKey":123});

1 个答案:

答案 0 :(得分:1)

如果性能对您不重要,您可以尝试使用Morphia。并使用这样的结构进行查询:

underpaid = datastore.createQuery(Employee.class)
                 .field("age").lessThanOrEq(18)
                 .asList();