我正在尝试从mongoDB获取特定数据。我有5个字段,用户可以根据这些字段进行搜索。这是我的代码:
Map<Object, Object> fields = new HashMap<Object, Object>();
if (textField.getText().length() != 0)
fields.put("FirstName", textField.getText());
if (textField_1.getText().length() != 0)
fields.put("LastName", textField_1.getText());
if (textField_2.getText().length() != 0)
fields.put("City", textField_2.getText());
if (textField_3.getText().length() != 0)
fields.put("EmailAddress", textField_3.getText());
if (textField_4.getText().length() != 0)
fields.put("PhoneNumber", "NumberLong(" + textField_4.getText() + ")");
query.putAll(fields);
long startTime = System.nanoTime();
DBCursor result = coll.find(query);
ArrayList<ArrayList<Object>> list = createListDataMongo(result);
除电话号码外,所有搜索字段均有效。当我添加到查询电话号码时,没有任何返回。 PhoneNumber
是我的mongoDB数据库中的NumberLong
字段。我该如何处理这个问题?
答案 0 :(得分:2)
fields.put("PhoneNumber", "NumberLong(" + textField_4.getText() + ")");
搜索PhoneNumber
类型为"NumberLong(" + textField_4.getText() + ")"
(字符串)text
的文档。
请试一试。
fields.put("PhoneNumber", Long.parseLong(textField_4.getText()));
和往常一样,处理异常。