我正在创建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)
答案 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);
}
}
}