未创建Mongodb数据库

时间:2015-09-30 13:40:32

标签: java mongodb

我正在创建mongodb数据库并尝试在其中插入记录,但问题是没有创建数据库         我的数据库名称是“myMongoDB”,当我运行它时,集合名称是chanel,它给出了     错误并且使用BUILD SUCCESSFUL

    package databaseconnection;

    import com.mongodb.BasicDBObject;
    import com.mongodb.DB;
    import com.mongodb.DBCollection;
    import com.mongodb.MongoClient;
    import java.net.UnknownHostException;

    public class InsertDriver {

        public static void main(String args[])throws UnknownHostException
        {
            DB db=(new MongoClient("localhost",8080)).getDB("myMongoDB");
            DBCollection dbcollection=db.getCollection("chanel");
            BasicDBObject basicDBObject=new BasicDBObject();
            basicDBObject.put("name", "dhiraj");
            basicDBObject.put("subscription", 4100);
            dbcollection.insert(basicDBObject);

        }
    }


Exception in thread "main" java.lang.NoSuchMethodError: com.mongodb.ReadPreference.primary()Lcom/mongodb/ReadPreference;
    at com.mongodb.MongoClientOptions$Builder.<init>(MongoClientOptions.java:52)
    at com.mongodb.MongoClient.<init>(MongoClient.java:128)
    at com.mongodb.MongoClient.<init>(MongoClient.java:117)
    at databaseconnection.InsertDriver.main(InsertDriver.java:21)

3 个答案:

答案 0 :(得分:3)

看起来你混合了几个不同版本的java mongodb客户端库。

如果您查看此版本的ReadPreference实例http://grepcode.com/file/repo1.maven.org/maven2/org.mongodb/mongo-java-driver/2.7.3/com/mongodb/ReadPreference.java,您会发现那里没有“主要”方法。但在不同的版本中,它就在那里:http://grepcode.com/file/repo1.maven.org/maven2/org.mongodb/mongo-java-driver/2.9.1/com/mongodb/ReadPreference.java#ReadPreference.primary%28%29

如果您有更详细的帮助,请列出您班级路径中的所有罐子。可能是来自旧mongodb客户端的类被添加到其他jar中。

答案 1 :(得分:2)

我想澄清一件事,当您在该数据库的任何集合中插入一些数据时,会在MongoDB中创建数据库。

首先,检查MongoDB是否在您的计算机上运行(默认情况下它将在端口27017上运行)?

尝试从mongo shell插入一些示例数据。

示例命令:

use testDB
db.testCollection.insert({"name":"dev"});

它会在testCollection testDB数据库中插入此数据。您可以使用以下方式找到它:

db.testCollection.find() 

如果这一切正常的话。然后继续使用java驱动程序。

你的代码看起来不错8080端口(我假设你手动将端口从27017改为8080)并确保MongoDB正在运行。

答案 2 :(得分:0)

实际上我不知道我以前的代码有什么问题,但是我卸载了 mongodb completly然后重新安装它并尝试使用代码,它对我来说很好。

    package mongod;

    import com.mongodb.MongoClient;
    import com.mongodb.MongoException;
    import com.mongodb.WriteConcern;
    import com.mongodb.DB;
    import com.mongodb.DBCollection;
    import com.mongodb.BasicDBObject;
    import com.mongodb.DBObject;
    import com.mongodb.DBCursor;
    import com.mongodb.ServerAddress;
    import java.net.UnknownHostException;
    import java.util.List;

    public class Mongod {
        //private static Object mongo;

        Mongod mongo;

        public static void main(String[] args) throws UnknownHostException {
            MongoClient mongoClient = new MongoClient("localhost", 27017);

            DB db = mongoClient.getDB("testDB1");
            DBCollection dbcollection=db.getCollection("testCollection");
            BasicDBObject basicDBObject=new BasicDBObject();
            basicDBObject.put("name", "dhiraj");
            basicDBObject.put("subscription", 4100);
            dbcollection.insert(basicDBObject);
            //boolean auth = db.authenticate("admin", "admin123".toCharArray());   
            //System.out.println(auth);
            List<String> dbs = mongoClient.getDatabaseNames();

            for (String dbss : dbs) {
                System.out.println(dbss);
            }

        }

    }