一.启动与连接配置
1.在MongoDB目录下建议一个“mongodb.conf”文件,设置相应参数
#数据目录的路径
dbpath = F:\MongoDB_data\db
#日志信息文件路径
logpath = F:\MongoDB_data\log\mongodb.log
#打开日志输出操作
logappend = true
#不以授权验证方式登录
noauth = true
#端口号设置
port=27017
2.启动MongoDB数据库服务
mongod –f G:\MongoDB\mongodb.conf
3.连接MongoDB数据库服务(未验证授权状态下无密码方式)
mongo –-port=27017
二.用户管理
1.配置用户名和密码一定是针对一个数据库的,故配置前应先切换到该数据库。
> use test
显示:switched to db test
2.添加用户
> db.createUser({"user" : "root" , "pwd" : "root" , "roles" : [{"role" : "readWrite", "db" : "test"}]});
显示:Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
}
]
}
3.如果想让此用户起作用,则必须以“授权”的方式打开MongoDB服务。(启动配置文件中改为
#以授权验证方式登录
auth = true
)
4.使用用户名、密码登录数据库,连接数据库服务:
mongo localhost:27017/test -u root -p root
登录后可以执行数据库操作
三.Java对MongoDB数据库的操作——基于2.x驱动
jar下载地址:点击下载mongo-java-driver-2.13.3.jar
package com.mongo.test;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.WriteResult;
public class Test {
@SuppressWarnings("deprecation")
public static void main(String[] args) throws Exception {
/*
* 连接与测试连接状况
*/
MongoClient client = new MongoClient("localhost", 27017);
DB db = client.getDB("test");
if (db.authenticate("root", "root".toCharArray())) {
for (String colname : db.getCollectionNames()) {
System.out.println("集合名称:" + colname);
}
/*
* 增
*/
DBCollection collection = db.getCollection("mycol");
for (int i = 0; i < 10; i++) {
BasicDBObject object = new BasicDBObject();
object.append("name", i);
object.append("age", 20 + i);
object.append("sex", i % 2);
//collection.insert(object);
}
/*
* 查
*/
//查询全部数据
DBCursor cursor = collection.find();
while (cursor.hasNext()) {
DBObject object = cursor.next();
System.out.println("姓名:"+object.get("name")+" 年龄:"+object.get("age")+" 性别:"+object.get("sex"));
}
//使用分页查询
cursor = collection.find().skip(0).limit(5);
while (cursor.hasNext()) {
DBObject object = cursor.next();
System.out.println("姓名:"+object.get("name")+" 年龄:"+object.get("age")+" 性别:"+object.get("sex"));
}
//设置条件查询1
DBObject object = new BasicDBObject();
object.put("sex", 0);
cursor = collection.find(object);
while (cursor.hasNext()) {
DBObject object2 = cursor.next();
System.out.println("姓名:"+object2.get("name")+" 年龄:"+object2.get("age")+" 性别:"+object2.get("sex"));
}
//设置条件查询2
object = new BasicDBObject();
object.put("age", new BasicDBObject("$gte", 20).append("$lte", 22));
cursor = collection.find(object);
while (cursor.hasNext()) {
DBObject object2 = cursor.next();
System.out.println("姓名:"+object2.get("name")+" 年龄:"+object2.get("age")+" 性别:"+object2.get("sex"));
}
//设置范围查询
object = new BasicDBObject();
object.put("age", new BasicDBObject("$in",new int[]{20, 21, 22, 23}));
cursor = collection.find(object);
while (cursor.hasNext()) {
DBObject object2 = cursor.next();
System.out.println("姓名:"+object2.get("name")+" 年龄:"+object2.get("age")+" 性别:"+object2.get("sex"));
}
/*
* 改
*/
//修改数据1
object = new BasicDBObject();
object.put("sex", 0);
DBObject object2 = new BasicDBObject();
object2.put("$set", new BasicDBObject("sex", "女"));
WriteResult result = collection.updateMulti(object, object2);
System.out.println(result);
//修改数据2
object = new BasicDBObject();
object.put("age", new BasicDBObject("$gte", 20).append("$lte", 22));
object2 = new BasicDBObject();
object2.put("$set", new BasicDBObject("age", "<22"));
result = collection.updateMulti(object, object2);
System.out.println(result);
/*
* 删
*/
object = new BasicDBObject();
object.put("age", 29);
result = collection.remove(object);
System.out.println(result);
} else {
System.out.println("连接失败");
}
client.close();
}
}
四.Java对MongoDB数据库的操作——基于3.x驱动
jar下载地址:点击下载mongo-java-driver-3.2.2.jar
package com.mongo.test;
import java.util.ArrayList;
import java.util.List;
import org.bson.Document;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
public class Test3 {
public static void main(String[] args) {
// 连接与测试连接情况
MongoClientURI uri = new MongoClientURI("mongodb://root:root@localhost:27017/test");
MongoClient client = new MongoClient(uri);
MongoDatabase database = client.getDatabase("test");
//System.out.println(database.getCollection("mycol").count());
/*
* 增
*/
MongoCollection collection = database.getCollection("mycol2");
List<Document> all = new ArrayList<Document>();
for (int i = 0; i < 10; i++) {
Document document = new Document();
document.append("name", i);
document.append("age", 20 + i);
document.append("sex", i % 2);
all.add(document);
}
//collection.insertMany(all);
/*
* 查
*/
// 查询全部数据
MongoCursor<Document> cursor = collection.find().iterator();
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
// 设置分页查询
cursor = collection.find().skip(0).limit(5).iterator();
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
//设置范围查询
BasicDBObject object = new BasicDBObject();
object.put("age", new BasicDBObject("$gt", 20).append("$lt", 23));
cursor = collection.find(object).iterator();
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
/*
*改
*/
object = new BasicDBObject("sex",1);
BasicDBObject object2 = new BasicDBObject("$set", new BasicDBObject("sex","女"));
UpdateResult result = collection.updateMany(object, object2);
System.out.println(result);
/*
*删
*/
object = new BasicDBObject("age", 29);
DeleteResult result2 = collection.deleteOne(object);
System.out.println(result2);
client.close();
}
}