Java Mongodb numberlong查询 [英] Java Mongodb numberlong query
问题描述
我正在尝试从mongoDB获取特定数据.我有5个字段,用户可以根据这些字段进行搜索.这是我的代码:
I am trying to get specific data from mongoDB. I have 5 fields that user can make search based on these. Here is my code :
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
字段.我该如何解决这个问题?
All of the search fields works except for phone number. When I have added to the query phone number nothing returns. PhoneNumber
is a NumberLong
field in my mongoDB database. How can I handle this problem?
推荐答案
fields.put("PhoneNumber", "NumberLong(" + textField_4.getText() + ")");
搜索类型为text
(字符串)的值"NumberLong(" + textField_4.getText() + ")"
的文档.
searches for documents where PhoneNumber
has the value "NumberLong(" + textField_4.getText() + ")"
of type text
(String).
请尝试这个.
fields.put("PhoneNumber", Long.parseLong(textField_4.getText()));
和往常一样,处理异常.
And as usual, handle the exceptions.
这篇关于Java Mongodb numberlong查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!