【问题标题】:Working with mongodb from Java从 Java 中使用 mongodb
【发布时间】:2011-02-09 13:38:02
【问题描述】:

我已经启动了 mongodb 服务器:

[demas@arch.local.net][~]% mongod --dbpatmongod --dbpath /home/demas/temp/  
Mon Apr 19 09:44:18 Mongo DB : starting : pid = 4538 port = 27017 dbpath = /home/demas/temp/ master = 0 slave = 0  32-bit 

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations for more

Mon Apr 19 09:44:18 db version v1.4.0, pdfile version 4.5
Mon Apr 19 09:44:18 git version: nogitversion
Mon Apr 19 09:44:18 sys info: Linux arch.local.net 2.6.33-ARCH #1 SMP PREEMPT Mon Apr 5 05:57:38 UTC 2010 i686 BOOST_LIB_VERSION=1_41
Mon Apr 19 09:44:18 waiting for connections on port 27017
Mon Apr 19 09:44:18 web admin interface listening on port 28017

我已经通过控制台客户端创建了文档:

[demas@arch.local.net][~]% mongo
MongoDB shell version: 1.4.0
url: test
connecting to: test
type "help" for help
> db.some.find();
 { "_id" : ObjectId("4bcbef3c3be43e9b7e04ef3d"), "name" : "mongo" }
 { "_id" : ObjectId("4bcbef423be43e9b7e04ef3e"), "x" : 3 }

现在我正在尝试从 Java 中使用 MongoDb:

import com.mongodb.*;
import java.net.UnknownHostException;

public class test1 {
    public static void main(String[] args) {
    System.out.println("Start");

        try {
        Mongo m = new Mongo("localhost", 27017);
        DB db = m.getDB("test");

        DBCollection coll = db.getCollection("some");

        coll.insert(makeDocument(10, "James", "male"));
        System.out.println("Finish");
    }
    catch (UnknownHostException ex) {
       ex.printStackTrace();
    }
    catch (MongoException ex) {
       ex.printStackTrace();
    }
    }

    public static BasicDBObject makeDocument(int id, String name, String gender) {
        BasicDBObject doc = new BasicDBObject();
        doc.put("id", id);
        doc.put("name", name);
        doc.put("gender", gender);
        return doc;
    }
 }

但执行在 coll.insert() 行停止:

 [demas@arch.local.net][~/dev/study/java/mongodb]% javac test1.java
 [demas@arch.local.net][~/dev/study/java/mongodb]% java test1      
 Start

没有来自 mogodb 服务器的关于已接受连接的消息。为什么?

【问题讨论】:

    标签: java mongodb mongo-java


    【解决方案1】:

    嗯……

    如果我换行:

    Mongo m = new Mongo("localhost", 27017);
    

    到:

    Mongo m = new Mongo();
    

    一切正常。

    【讨论】:

      【解决方案2】:

      检查您的 /etc/hosts 文件以确保 localhost 解析为 127.0.0.1。

      通常,它将包含如下一行:

      127.0.0.1 localhost.localdomain 本地主机

      【讨论】:

        【解决方案3】:

        尝试将本地主机更改为127.0.0.1。也许会没事的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-25
          • 1970-01-01
          相关资源
          最近更新 更多