这是数据库中的两个不同的集合。我无法弄清楚如何使用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});
答案 0 :(得分:1)
如果性能对您不重要,您可以尝试使用Morphia。并使用这样的结构进行查询:
underpaid = datastore.createQuery(Employee.class)
.field("age").lessThanOrEq(18)
.asList();