MongoDB Java操作 学习笔记

一.启动与连接配置

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

扫描二维码关注公众号,回复: 2581576 查看本文章

显示: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();
	}

}


猜你喜欢

转载自blog.csdn.net/sinat_27955211/article/details/51812696
今日推荐