有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java Mongodb numberlong查询

我正试图从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) 个答案

  1. # 1 楼答案

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

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

    请试试这个

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

    和往常一样,处理例外情况