2017-03-08 2 views
0

Ich versuche, diese post zu folgen, um eine "enthält" Abfrage in Java zu erstellen. Das Problem ist, dass es mir einen Fehler gibt.Erstellen Sie eine 'enthält' Abfrage mit Java und MongoDB

Im Moment ich den folgenden Code haben:

MongoClient mongoClient = null; 
DBCursor cursor = null; 

mongoClient = new MongoClient("localhost" , 27017); 
DB db = mongoClient.getDB("bd-films"); 
DBCollection coll = db.getCollection("films"); 

DBObject query = new BasicDBObject({"title" : {$regex : "name"}});   
cursor = coll.find(query); 

Der Fehler es mir gibt, ist in der 'query' Zeile:

Syntax error on token ""title"", invalid Label 
Syntax error, insert ";" to complete Statement 
Syntax error on token ")", delete this token 

Ich benutze den Cursor in eine JTable Einfügen .
Treiber: mongo-java-driver-3.4.2
Vielen Dank im Voraus.

+1

Vielleicht Ihre Abfrage sollte wie folgt aussehen ... 'DBObject Abfrage = new BasicDBObject ("title", neue BasicDBObject ("$ regex"," name "));' –

+0

Mein Problem gelöst, danke –

Antwort

1

Verwenden Sie neue Document und MongoCollection APIs für Java-Treiber 3.x-Version.

MongoClient mongoClient = new MongoClient("localhost", 27017); 
MongoDatabase db = mongoClient.getDatabase("bd-films"); 
MongoCollection<Document> coll = db.getCollection("films"); 
List<Document> results = coll.find(Filters.regex("title", "name")).into(new ArrayList<>()) 

Für MongoCursor accesssing,

FindIterable<Document> results = coll.find(Filters.regex("title", "name")); 
MongoCursor<Document> cursor = results.iterator(); 
Verwandte Themen