![](/img/trans.png)
[英]Regex in Java for “greater than” or “less than” without using bracket “<|>” symbols
[英]How to get Documents less than or greater than some value in mongodb using java
我想使用Java获取员工ID大于50且小于500的所有可用文档。
我已经尝试过了
BasicDBObject gtQuery = new BasicDBObject();
gtQuery.put("employeeID", new BasicDBObject("$gt", 50).append("$lt", 500));
DBCursor cursor = collection.find(gtQuery);
while(cursor.hasNext()) {
System.out.println(cursor.next());
};
但是,即使我在数据库中处于该范围内的文档,也无法从中得到任何结果。 请告诉我原因...
集合中文档的样本格式。
{“ employeeID”:“ 450”,“ name”:“ AAA”}
查询似乎很好,但是,我将检查其执行的集合(并确保它是正确的)。
另外,另一种调试方法是在控制台中打印查询,然后在mongo shell中执行该查询,
例如db.employee.find({employeeID : {$gt : 50, $lt : 500}})
集合中的主要问题之一是employeeID被存储为String。 如果您100%确定所有employeeID都是数字,则建议将字段从String转换为Integer。 尝试使用以下代码来转换employeeID字段:
DBCursor cursor = collection.find();
while (cursor.hasNext()) {
BasicDBObject current_object = (BasicDBObject) cursor.next();
current_object.update(
new BasicDBObject().append("_id", current_object.getObjectId("_id"),
new BasicDBObject()
.append(
"$set",
new BasicDBObject("employeeID", Integer.parseInt(current_object.getString("employeeID"))
)
)
)
);
}
然后,您可以使用您的代码来获取员工50 <employeeID <500。
确保此转换不会严重影响您的应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.