2017-05-05 4 views
0

Ich versuche, eine einfache Suche nach einer Mongodb-Datenbank mit dem folgenden Code zu erstellen. Zur Laufzeit wird der Code ausgeführt, gibt jedoch keinen Wert zurück.Mongob Java-Abfrage gibt nie einen Wert zurück

Die generierte Abfrage funktioniert in der Befehlszeile kein Problem. Die Datenbank ist ziemlich groß, etwa 2,8 GB.

public static void main(String[]args){ 

     String customer="peter"; 
     String job="builder"; 


     // To connect to mongodb server 
     MongoClient mongoClient=new MongoClient("localhost",27017); 

     // Now connect to your databases 
     MongoDatabase db=mongoClient.getDatabase("customers"); 
     System.out.println("Connect to database successfully"); 

     // Now connect to your collection 
     MongoCollection<Document> collection=db.getCollection("customerData"); 
     System.out.println("Connect to collection"); 

     BasicDBObject andQuery=new BasicDBObject(); 
     List<BasicDBObject> obj=new ArrayList<BasicDBObject>(); 

     obj.add(new BasicDBObject("job",job)); 
     obj.add(new BasicDBObject("customer",customer)); 
     andQuery.put("$and",obj); 

     System.out.println(andQuery.toString()); 

     FindIterable<Document> iterable=collection.find(new Document(andQuery)); 
     MongoCursor<Document> iterableDocument=iterable.iterator(); 

     while(iterableDocument.hasNext()){ 
      Document wholeDocument=(Document)iterableDocument.next(); 
      System.out.println("1: "+wholeDocument.get("age")); 
      System.out.println("2: "+wholeDocument.get("dob")); 
     } 
} 

Antwort

0

Versuchen Sie, Ihre Abfrage als

DBObject obj = new BasicDBObject(); 
obj.put("job", job); 
obj.put("customer", customer); 
collection.find(new Document(obj)) 

Auch getDatabase und GetCollection Vereinfachung tun keinen connect. Wenn Sie diese Teile falsch geschrieben haben, gibt die Abfrage nichts zurück, da Sie auf eine leere Datenbank treffen. (Der erste Verbindungsversuch ist, wenn Sie 'find' aufrufen. Wenn die Datenbank oder Sammlung nicht existiert, wird Mongo sie erstellen, wenn Sie darauf schreiben)

Verwandte Themen