作为熟悉 MongoDB 的一步,我开始创建简单的 Java 类来在 MongoDB 中执行 CRUD。我能够与 MongoDB 建立连接。然而,当我尝试遍历 MongoDB 集合时,我遇到了错误。已实现的 Java 类在此处共享。
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import java.util.Iterator;
import org.bson.Document;
public class ReadMongo {
public static void main( String args[] ) {
//Creating a MongoDB client
com.mongodb.client.MongoClient mongo = MongoClients.create("mongodb://localhost:27017");
//Connecting to the database
MongoDatabase database = mongo.getDatabase("myDB");
//Creating a collection object
MongoCollection<Document> collection = database.getCollection("myGrid");
//Retrieving the documents
FindIterable<Document> iterDoc = collection.find();
Iterator it = iterDoc.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
下面我分享了错误日志。
INFO: Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
Exception in thread "main" java.lang.NoSuchMethodError: com.mongodb.internal.operation.SyncOperations.<init>(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/WriteConcern;Z)V
at com.mongodb.client.internal.MongoCollectionImpl.<init>(MongoCollectionImpl.java:106)
at com.mongodb.client.internal.MongoDatabaseImpl.getCollection(MongoDatabaseImpl.java:132)
at com.mongodb.client.internal.MongoDatabaseImpl.getCollection(MongoDatabaseImpl.java:127)
at ReadMongo.main(ReadMongo.java:14)
第 14 行对应于MongoCollection<Document> collection = database.getCollection("myGrid");
行。