Java Mongodb numberlong查询

时间:2013-12-25 20:18:36

标签: java mongodb

我正在尝试从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字段。我该如何处理这个问题?

1 个答案:

答案 0 :(得分:2)

fields.put("PhoneNumber", "NumberLong(" + textField_4.getText() + ")");

搜索PhoneNumber类型为"NumberLong(" + textField_4.getText() + ")"(字符串)text的文档。

请试一试。

fields.put("PhoneNumber", Long.parseLong(textField_4.getText()));

和往常一样,处理异常。