在MongoCollection <Document>中查找

jim*_*s17 9 java mongodb

我有一个MongoCollection<Document>我分配了一个集合.我想通过他的身份找到一个用户.

user = (Document) usersCollection.find(new Document("_id", username));
Run Code Online (Sandbox Code Playgroud)

我得到了一个错误

java.lang.ClassCastException:com.mongodb.FindIterableImpl无法强制转换为org.bson.Document

当我尝试

    BasicDBObject query = new BasicDBObject(); 
    BasicDBObject fields = new BasicDBObject("_id", username);
    usersCollection.find(query, fields);
Run Code Online (Sandbox Code Playgroud)

我收到了一个错误

MongoCollection类型中的方法find(Bson,Class)不适用于参数(BasicDBObject,BasicDBObject)

chr*_*dam 13

尝试创建一个过滤器以传递给find()方法以获取集合中的文档子集.例如,要查找_id字段值所在的文档test,您将执行以下操作:

import static com.mongodb.client.model.Filters.*;

MongoClient client = new MongoClient();
MongoDatabase database = client.getDatabase("mydb");
MongoCollection<Document> collection = database.getCollection("mycoll");
myDoc = collection.find(eq("_id", "test")).first();
System.out.println(myDoc.toJson());
Run Code Online (Sandbox Code Playgroud)

  • @DarshanPuranik`import static com.mongodb.client.model.Filters.eq;` (4认同)
  • 在哪里可以找到 eq() 运算符? (2认同)