Mongo find()与java中的regex只返回一个条目

时间:2014-07-22 14:28:14

标签: java regex mongodb

我在mongo db中存储了几篇文章,我想获得包含特定单词的所有文章,但是这段代码只能返回一篇文章。

我该怎么办?这是我的代码:

 public String selectMongo(String term){

    query = new BasicDBObject("content", java.util.regex.Pattern.compile(term));
    cursor = coll.find(query);

     try{
         while(cursor.hasNext())
         {
             BasicDBObject dbObject = (BasicDBObject)cursor.next();
             resultSet = dbObject.getString("content");
            //System.out.println(resultSet);
        }
     }finally{
         cursor.close();
     }

     return resultSet;
}

提前致谢

1 个答案:

答案 0 :(得分:0)

您只有一个resultSet变量,您可以使用每个结果的字符串表示法一次又一次地替换它,然后返回最后一个迭代的值。如果要返回多个结果,则需要返回一个数组(String[])或Collection,例如ArrayList

public List<String> selectMongo(String term){

    List<String> resultSet = new ArrayList<>();

    query = new BasicDBObject("content", java.util.regex.Pattern.compile(term));
    cursor = coll.find(query);

     try{
         while(cursor.hasNext())
         {
             BasicDBObject dbObject = (BasicDBObject)cursor.next();
             resultSet.add(dbObject.getString("content"));
        }
     }finally{
         cursor.close();
     }

     return resultSet;
}