[英]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.