MongoDB3.0以上的版本相对于之前的版本已经改变了很多了,就比如说,认证方式的方法改变就有点大了,下面分别说一下,认证和不需要认证的代码该怎么写。
1.MongoDB没有添加使用auth认证方式
MongoClientURI uri = new MongoClientURI("mongodb://192.168.32.129:27017/local",
MongoClientOptions.builder().cursorFinalizerEnabled(false));
MongoClient client = new MongoClient(uri);
MongoDatabase db=client.getDatabase("local");
MongoCollection<Document> collection = db.getCollection("system.users");
List<Document> foundDocument = collection.find().into(new ArrayList<Document>());
System.out.println(foundDocument);
2.MongoDB启动的时候添加--auth参数启动MongoDB(即安全认证模式下)
private static MongoClient mongoClient = null;
private static MongoDatabase database = null;
private static ServerAddress serverAddress = null;
private static MongoCredential credentials = null;
private static List<ServerAddress> addressLists =new ArrayList<ServerAddress>();
private static List<MongoCredential> credentialsLists = new ArrayList<MongoCredential>();
try{
//mongoClient = new MongoClient("192.168.32.129",27017);
serverAddress = new ServerAddress("192.168.32.129",27017);
addressLists.add(serverAddress);
credentials = MongoCredential.createMongoCRCredential("admin", "admin", "admin".toCharArray());
credentialsLists.add(credentials);
mongoClient = new MongoClient(addressLists, credentialsLists);
}catch (MongoException e)
{
System.out.println(e.toString());
}
if(null != mongoClient){
database = mongoClient.getDatabase("admin");
/* collection = database.getCollection("system.users");
foundDocument = collection.find().into(
new ArrayList<Document>());
System.out.println(foundDocument);*/
}