这是数据库中的两个不同的集合。我无法弄清楚如何使用 java 从集合中动态获取值。
我想通过java程序获取值,但不使用 硬编码值,如上面在 java 代码中提到的“VerifyEmail.LicenseKey”和“wsf:status.arg0.age”。有没有一种方法可以在不使用 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});
最佳答案
您可以尝试使用Morphia如果性能对您来说并不重要。并使用这样的结构进行查询:
underpaid = datastore.createQuery(Employee.class)
.field("age").lessThanOrEq(18)
.asList();
关于java - 使用java从mongodb集合中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40778112/