MongoDB java驱动程序3.12.1中的MongoDB java连接

MongoDB java驱动程序3.12.1中的MongoDB java连接,java,mongodb,Java,Mongodb,我在我的Ubuntu 18.04中安装了mongodb 4.0。 我使用的是JavaMongo驱动程序3.12.1 我正在上传我的代码,你可以看到我检查了不同类型的连接,但它不工作 如何解决这个问题?试试看,让我知道你的想法 package test; public class Main { public static void main(String[] args) { com.mongodb.client.MongoClient client = connect

我在我的Ubuntu 18.04中安装了mongodb 4.0。 我使用的是JavaMongo驱动程序3.12.1 我正在上传我的代码,你可以看到我检查了不同类型的连接,但它不工作


如何解决这个问题?

试试看,让我知道你的想法

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");
        }
    }
}
封装测试;
公共班机{
公共静态void main(字符串[]args){
com.mongodb.client.MongoClient client=connecttostandlone();
com.mongodb.client.MongoDatabase db=client.getDatabase(“javatest”);
QueryData(db);
}
private static com.mongodb.client.MongoClient connecttostandlone(){
//单机版仍然需要包含一个元素的主机列表。。。
java.util.ArrayList hosts=new java.util.ArrayList();
添加(新的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()
.ApplyClusterSettings(clusterSettingsBuilder->clusterSettingsBuilder.hosts(主机))
.凭证(mongoCredential)
.writeConcern(com.mongodb.writeConcern.W1)
.readConcern(com.mongodb.readConcern.mailty)
.readPreference(com.mongodb.readPreference.nearest())
.retryWrites(真)
.build();
com.mongodb.client.MongoClient client=com.mongodb.client.MongoClients.create(mongoClientSettings);
返回客户;
}
私有静态void QueryData(com.mongodb.client.MongoDatabase db){
//驱动程序没有集合。findOne()。
com.mongodb.client.MongoCollection collection=db.getCollection(“人”);
com.mongodb.client.MongoCursor cursor=collection.find(com.mongodb.client.model.Filters.eq(“testfield”,true))
.sort(新的org.bson.Document(“review_date”,-1))
.跳过(5)
.限额(20)
.iterator();
while(cursor.hasNext()){
org.bson.Document Document=cursor.next();
字符串json=document.toJson();
System.out.println(json);
boolean testfieldValue=document.getBoolean(“testfield”);
字符串ssnValue=document.getString(“ssn”);
}
}
}
我找到了简单的解决方案。 我添加了更多我们需要的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)。这些可在

现在我的代码运行良好

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();
    }
 }
}
导入com.mongodb.client.MongoClients;
导入com.mongodb.client.MongoClient;
导入com.mongodb.client.MongoCollection;
导入com.mongodb.client.MongoDatabase;
导入org.bson.Document;
导入java.util.array;
公共类MongoConnection{
公共静态void main(字符串[]args){
试试{
//创建连接
MongoClient MongoClient=MongoClient.create(“mongodb://localhost:27017");
System.out.println(“MongoDB连接成功”);
//访问数据库
MongoDatabase数据库=mongoClient.getDatabase(“java”);
System.out.println(“MongoDB数据库连接”);
//创建集合
database.createCollection(“第一”);
System.out.println(“已成功创建集合”);
//访问集合
MongoCollection collection=database.getCollection(“第一”);
文件=新文件(“名称”、“咖啡馆”)
附加(“联系人”,新文件(“电话”,“228-555-0149”)
.append(“电子邮件”)cafeconleche@example.com")
.append(“location”,Arrays.asList(-73.92502,40.8279556)))
.append(“stars”,3)
.append(“categories”,array.asList(“Bakery”,“Coffee”,“糕点”));
收藏.插入器(文件);
}捕获(例外e){
e、 printStackTrace();
}
}
}

很好的建议。你能核对一下我的答案吗。你怎么看?MongoDB驱动程序3.12.1被称为“优步”驱动程序。它有新客户端和旧客户端。它有所有的org.bson引用。使用Maven(可传递依赖项)时,它包括同步驱动程序的所有功能以及遗留功能。请注意,驱动程序体系结构计划更改。从驱动程序版本4.0开始,它将不再是“Uber”驱动程序-如果需要,您需要显式选择legacy。您的代码使用的是最新的客户端-com.mongodb.client.MongoClient-因此您不必担心遗留问题。但这并不明显,
org.mongodb:mongodb driver core
未在文档中突出显示,但您也需要它。