一.设置mongodb超级管理员,数据库管理者
1.设置mongodb超级管理员:
> use admin
switched to db admin
> db.createUser({user:'super',pwd:'super',roles:['root']})
Successfully added user: { "user" : "super", "roles" : [ "root" ] }
2.为数据库添加管理员:为wechat数据库添加root管理员
> use wechat
switched to db wechat
> db.createUser({user:'root',pwd:'tiger',roles:[{role:'readWrite',db:'wechat'}]})
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "readWrite",
"db" : "wechat"
}
]
}
二.启动mongodb验证
–dbpath:数据库位置
–logpath:日志位置
cd D:\win8pro\developSoftware\Mongodb\bin
mongod --dbpath "D:\win8pro\developSoftware\Mongodb\db" --logpath "D:\win8pro\developSoftware\Mongodb\log\mongodb.log" --auth
验证用户:
先试用数据库再验证:
D:\win8pro\developSoftware\Mongodb\bin>mongo
MongoDB shell version: 3.0.6
connecting to: test
> use wechat
switched to db wechat
> db.auth('root','tiger')
1
> show collections
system.indexes
t_users
或者登录时直接验证:
D:\win8pro\developSoftware\Mongodb\bin>mongo localhost:27017/wechat -u root -p tiger
MongoDB shell version: 3.0.6
connecting to: localhost:27017/wechat
>
本地验证成功后就可以在java登陆验证了
三.java mongodb driver3.1.0数据库连接验证及简单数据插入,查询
直接上代码:
package com.tecsun.wechat.test;
import java.util.Arrays;
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
/**
* 功能说明:java链接操作mongodb
*
* @author xx 2015年10月16日
* 思路:1.建立连接并验证 2.获取一个集合列表 3.获取选择第一
* 个集合 4.插入集合 5.查询集合
*/
public class MongodbTest
{
/**
* 连接mongodb数据库服务,验证用户名密码
*
* @return
* @author xx 2015年10月16日
*/
private MongoDatabase connectMongoDB(String name, String databaseName, char[] pswd)
{
//创建个 credential对象
MongoCredential credential = MongoCredential.createCredential(name, databaseName, pswd);
//把对象传入mongoClient的构造方法中,说明:用户名密码端口啥的都正确会得到mongoClient,否则程序会报错
//mongodb还有很多种验证方式 详见:http://mongodb.github.io/mongo-java-driver/3.0/driver/reference/connecting/authenticating/
MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017), Arrays.asList(credential));
MongoDatabase db = mongoClient.getDatabase("wechat");
return db;
}
/**
* 获取一个文档
*
* @param db
* @author xx 2015年10月16日
*/
private MongoCollection<Document> getDBCollection(MongoDatabase db, String setName)
{
MongoIterable<String> cols = db.listCollectionNames();
for (String c : cols)
{
System.out.println("collectionName: " + c);
}
MongoCollection<Document> col = db.getCollection(setName);
if (col != null)
return col;
else
return null;
}
/**
* 插入一条数据
*
* @param col
* @param username
* @param password
* @author xx 2015年10月16日
*/
private void insertCollection(MongoCollection<Document> col, String username, String password)
{
// new一个BasicDBObject 对象
// BasicDBObject obj =new BasicDBObject("username", username);
// obj.append("password", password);
Document doc =new Document();
doc.put("usename", username);
doc.put("password", password);
col.insertOne(doc);
;
}
/**
* 查找一个doc
*
* @param colName
* @author xx 2015年10月16日
*/
private void findColByColName(MongoCollection<Document> doc)
{
FindIterable<Document> mydoc = doc.find();
for (Document d : mydoc)
{
System.out.println(d.toJson());
System.out.println(d.toString());
}
}
public static void main(String[] args)
{
MongodbTest mo = new MongodbTest();
MongoDatabase db = mo.connectMongoDB("root", "wechat", "tiger".toCharArray());
if(db!=null){
MongoCollection<Document> doc = mo.getDBCollection(db, "t_users");
if(doc!=null){
mo.insertCollection(doc, "chener", "123");
mo.findColByColName(doc);
}
}
}
}