2014-09-21 143 views
0

我創建的MongoDB服務器的mongod命令,並等待在端口27017 我使用的Java和Eclipse連接來連接到它的MongoDB連接 這裏是我的代碼與Java

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()); 
     } 
    } 
} 

我的問題是代碼成功運行>> BUT < < <在現實中,連接不發生......我的服務器端不斷地等待27017端口上的連接....

有沒有什麼,我失蹤?

+0

您是否嘗試過訪問mongo集合或寫入數據? – Smutje 2014-09-21 14:39:39

+0

目前還不清楚你在問什麼。您的mongod服務器將接受到端口27017的許多連接,而不僅僅是一個。 – JohnnyHK 2014-09-21 14:40:36

+0

當我使用終端作爲客戶端(使用命令./mongo)它工作..但hwen我使用java,它沒有得到連接 – 2014-09-21 14:42:10

回答

0

我知道它的作用與其他數據庫有所不同。當您嘗試實際訪問集合操作(​​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); 
+0

你是對的...我觀察到database.0和database.ns不會被創建,直到你使用收集操作...雖然我已經提供了名稱作爲爭論getDB()方法.....所以我想代碼不工作....謝謝 – 2014-09-21 15:34:35