【问题标题】:Mongodb connection with JavaMongodb与Java的连接
【发布时间】:2025-11-26 15:40:01
【问题描述】:

我已经使用 mongod 命令创建了 mongodb 服务器,它在端口 27017 处等待连接。 我正在使用 java 和 eclipse 连接到它 这是我的代码

package mt;

import java.net.UnknownHostException;

import com.mongodb.*;

public class mtrial {

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            MongoClient mc = new MongoClient("localhost",27017);
            @SuppressWarnings("unused")
            DB db = mc.getDB("mydb");
            System.out.println("Connected");   
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
    }
}

我的问题是代码运行成功>>但是

我有什么遗漏吗??

【问题讨论】:

  • 您是否尝试过访问 mongo 集合或写入数据?
  • 不清楚你在问什么。您的 mongod 服务器将接受到端口 27017 的许多连接,而不仅仅是一个。
  • 当我使用终端作为客户端(使用命令 ./mongo)时,它可以工作。但是我使用 java,它没有连接
  • @Smutje 我用过......代码运行良好但没有输出......
  • 尝试通过你的java代码向数据库中写入一些东西,然后查询是否成功。

标签: java mongodb


【解决方案1】:

据我所知,它与其他数据库的工作方式几乎没有什么不同。当您尝试实际访问集合操作(​​CRUD 等)时,只有您在服务器上看到连接请求。 您可以尝试提供错误的端口号,也不会出现异常,直到您访问集合操作。如果你输入第 3、4、5 行,那么你可以在服务器上看到连接请求

1. MongoClient c = new MongoClient("localhost",27017);
2. DB db = c.getDB("test1");
3. DBCollection animals = db.getCollection("animals");
4. BasicDBObject animal = new BasicDBObject("animal", "monkey");
5. animals.insert(animal);

【讨论】:

  • 你是对的...我观察到 database.0 和 database.ns 在您使用收集操作之前不会被创建...虽然我提供了 这两个文件最初并没有出现名称作为 getDB() 方法的论据.....所以我认为代码不起作用....谢谢