2015-04-15 2 views
3

Ниже кода находит первый документ в коллекции:Найти все объекты в коллекции Java MongoDB

package database; 

import com.mongodb.BasicDBObject; 
import com.mongodb.BulkWriteOperation; 
import com.mongodb.BulkWriteResult; 
import com.mongodb.Cursor; 
import com.mongodb.DB; 
import com.mongodb.DBCollection; 
import com.mongodb.DBCursor; 
import com.mongodb.DBObject; 
import com.mongodb.MongoClient; 
import com.mongodb.ParallelScanOptions; 
import com.mongodb.ServerAddress; 

import java.net.UnknownHostException; 
import java.util.List; 
import java.util.Set; 

import static java.util.concurrent.TimeUnit.SECONDS; 

// based on http://mongodb.github.io/mongo-java-driver/2.13/getting-started/quick-tour/ 

public class Mongo { 

    public void getCon() { 
     // or 
     MongoClient mongoClient; 
     try { 
      mongoClient = new MongoClient("localhost", 27017); 
      DB db = mongoClient.getDB("mydb"); 
      DBCollection coll = db.getCollection("testCollection"); 

      BasicDBObject doc = new BasicDBObject("name", "MongoDB") 
        .append("type", "database") 
        .append("count", 1) 
        .append("info", 
          new BasicDBObject("x", 203).append("y", 102)); 
      coll.insert(doc); 

      coll.findOne(); 
     } catch (UnknownHostException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
} 

Там не кажется, метод FindAll. Как найти все документы в коллекции testCollection?

ответ

8

Вы должны использовать DBCollection.find() метод, который

Выберите все документы в коллекции и получить курсор к выбранным документам.

Итак, что вам нужно сделать, это:

DBCursor cursor = coll.find(); 
while (cursor.hasNext()) { 
    DBObject obj = cursor.next(); 
    //do your thing 
} 
6

Если вы знаете, что запрос будет возвращать достаточно небольшое количество документов, вы можете использовать метод DBCursor.toArray(), чтобы получить все результаты в список:

List<DBObject> all = coll.find().toArray(); 
Смежные вопросы