我的Ubuntu18.04中安装了MongoDB4.0。我正在使用java-mongo-driver 3.12.1,我正在上传我的代码,你可以看到我已经检查了不同类型的连接,但它不工作。

如何解决这个问题?
发布于 2020-02-14 04:30:21
试一试,让我知道你的想法...
package test;
public class Main {
public static void main(String[] args) {
com.mongodb.client.MongoClient client = connectToStandAlone();
com.mongodb.client.MongoDatabase db = client.getDatabase("javatest");
QueryData(db);
}
private static com.mongodb.client.MongoClient connectToStandAlone() {
// STANDALONE STILL REQUIRES HOSTS LIST WITH ONE ELEMENT...
java.util.ArrayList<com.mongodb.ServerAddress> hosts = new java.util.ArrayList<com.mongodb.ServerAddress>();
hosts.add(new com.mongodb.ServerAddress("127.0.0.1", 27017));
com.mongodb.MongoCredential mongoCredential = com.mongodb.MongoCredential.createScramSha1Credential("testuser", "admin", "mysecret".toCharArray());
com.mongodb.MongoClientSettings mongoClientSettings = com.mongodb.MongoClientSettings.builder()
.applyToClusterSettings(clusterSettingsBuilder -> clusterSettingsBuilder.hosts(hosts))
.credential(mongoCredential)
.writeConcern(com.mongodb.WriteConcern.W1)
.readConcern(com.mongodb.ReadConcern.MAJORITY)
.readPreference(com.mongodb.ReadPreference.nearest())
.retryWrites(true)
.build();
com.mongodb.client.MongoClient client = com.mongodb.client.MongoClients.create(mongoClientSettings);
return client;
}
private static void QueryData(com.mongodb.client.MongoDatabase db) {
// DRIVER DOES NOT HAVE collection.findOne().
com.mongodb.client.MongoCollection<org.bson.Document> collection = db.getCollection("people");
com.mongodb.client.MongoCursor<org.bson.Document> cursor = collection.find(com.mongodb.client.model.Filters.eq("testfield", true))
.sort(new org.bson.Document("review_date", -1))
.skip(5)
.limit(20)
.iterator();
while(cursor.hasNext()) {
org.bson.Document document = cursor.next();
String json = document.toJson();
System.out.println(json);
boolean testfieldValue = document.getBoolean("testfield");
String ssnValue = document.getString("ssn");
}
}
}发布于 2020-02-14 12:46:35
我找到了简单的解决方案。我已经添加了更多的jar文件,总共需要(bson-3.12.1.jar,mongodb-driver-core-3.12.1.jar,mongodb-driver-sync-3.12.1.jar,mongodb-driver-sync-3.12.1-javadoc.jar)。这些在enter link description here中可用
现在我的代码运行良好
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import java.util.Arrays;
public class MongoConnection {
public static void main(String[] args) {
try {
// Create Connection
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
System.out.println("MongoDB connected successfully");
//Accessing the database
MongoDatabase database = mongoClient.getDatabase("java");
System.out.println("MongoDB database connection ");
//Creating a collection
database.createCollection("first");
System.out.println("Collection created successfully");
//Accessing collection
MongoCollection<Document> collection = database.getCollection("first");
Document document = new Document("name", "Café Con Leche")
.append("contact", new Document("phone", "228-555-0149")
.append("email", "cafeconleche@example.com")
.append("location",Arrays.asList(-73.92502, 40.8279556)))
.append("stars", 3)
.append("categories", Arrays.asList("Bakery", "Coffee", "Pastries"));
collection.insertOne(document);
} catch (Exception e) {
e.printStackTrace();
}
}
}https://stackoverflow.com/questions/60215489
复制相似问题