MongoDB学习笔记-安装部署和简易API操作

解压安装包

tar -xzvf mongodb-linux-x86_64-ubuntu1404-3.2.8.tgz


启动MongoDB方法一:

bin/mongod --dbpath=/home/hadoop/Software/mongodb-3.2.8/datas/instance00 --logpath=/home/hadoop/Software/mongodb-3.2.8/logs/instance00.log --fork
或者
bin/mongod --dbpath=/home/hadoop/Software/mongodb-3.2.8/datas/instance00 --logpath=/home/hadoop/Software/mongodb-3.2.8/logs/instance00.log  &

--dbpath执行数据库存放路径(默认是/data/db)
--logpath日志文件存放路径
--fork是以Daemon进程方式运行
注意:如果指定--fork参数,必须指定--logpaht日志文件路径

启动MongoDB方法二:
新建一个配置文件conf/mongodb.conf,添加以下内容
dbpath=/home/hadoop/Software/mongodb-3.2.8/datas/instance00
logpath=/home/hadoop/Software/mongodb-3.2.8/logs/instance00.log
bind_ip=192.168.10.20
port=27017
fork=true
然后执行  mongodb-3.2.8$ bin/mongod -f conf/mongodb.conf

开机启动,修改/etc/rc.d/rc.local 
 /home/hadoop/Software/mongodb-3.2.8/bin/mongod --dbpath=/home/hadoop/Software/mongodb-3.2.8/datas/instance00 --logpath=/home/hadoop/Software/mongodb-3.2.8/logs/instance00.log --fork 
或者
/home/hadoop/Software/mongodb-3.2.8/bin/mongod –config /home/hadoop/Software/mongodb-3.2.8/bin/mongodb.conf

进入客户端Shell
/home/hadoop/Software/mongodb-3.2.8/bin/mongo

新建用户与认证
>use admin
>db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})
>db.auth("root", "123456")

启动方式需要修改为
/home/hadoop/Software/mongodb-3.2.8/bin/mongod --dbpath=/home/hadoop/Software/mongodb-3.2.8/data/instance00 --logpath=/home/hadoop/Software/mongodb-3.2.8/logs/instance00.log -auth --fork
或修改conf/mongodb.conf文件,添加
auth=true

Java API 操作
import java.util.ArrayList;
import java.util.List;

import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;

public class MongoDBClient {
	
	private MongoClient mongoClient = null;
	
	private MongoDBClient() {
		initMongoClient();
	}
	
	private static class MongoDBClientHolder {
		private static final MongoDBClient INSTANCE = new MongoDBClient();
	}
	
	public static final MongoDBClient getInstance() {
		return MongoDBClientHolder.INSTANCE;
	}
	
	private void initMongoClient() {
		List<ServerAddress> serverAddressList = new ArrayList<ServerAddress>();
		ServerAddress serverAddress = new ServerAddress("192.168.0.103", 27017);
		serverAddressList.add(serverAddress);
		List<MongoCredential> credentials = new ArrayList<MongoCredential>();
		MongoCredential credential = MongoCredential.createCredential(
				"root", "admin", "123456".toCharArray());
		credentials.add(credential);
		mongoClient = new MongoClient(serverAddressList, credentials);
	}
	
	public MongoClient getClient() {
		return mongoClient;
	}
	
}

import java.util.ArrayList;
import java.util.List;

import org.bson.Document;
import org.junit.Test;

import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.bulk.BulkWriteResult;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.DeleteOneModel;
import com.mongodb.client.model.InsertOneModel;
import com.mongodb.client.model.UpdateOneModel;
import com.mongodb.client.model.WriteModel;
import com.mongodb.client.result.UpdateResult;

public class MongoDBClientTest {
	
	@Test
	public void insertCollection() {
		MongoClient mongoClient = MongoDBClient.getInstance().getClient();
		MongoDatabase database = mongoClient.getDatabase("admin");
		database.createCollection("test");
		mongoClient.close();
	}
	
	@Test
	public void insertOne() {
		MongoClient mongoClient = MongoDBClient.getInstance().getClient();
		MongoDatabase database = mongoClient.getDatabase("admin");
		MongoCollection<Document> collection = database.getCollection("test");
		Document document1 = new Document();
		document1.append("id", 1).append("username", "zhangsan").append("password", "zhangsan");
		collection.insertOne(document1);
		Document document2 = new Document();
		document2.put("id", 2);
		document2.put("username", "lisi");
		document2.put("password", "lisi");
		collection.insertOne(document2);
		mongoClient.close();
	}
	
	@Test
	public void insertMany() {
		MongoClient mongoClient = MongoDBClient.getInstance().getClient();
		MongoDatabase database = mongoClient.getDatabase("admin");
		MongoCollection<Document> collection = database.getCollection("test");
		List<Document> documents = new ArrayList<Document>();
		Document document = null;
		for (int i = 10; i < 20; i++) {
			document = new Document();
			document.append("id", i).append("username", "lisi" + i).append("password", "lisi" + i);
			documents.add(document);
		}
		collection.insertMany(documents);
		mongoClient.close();
	}
	
	@Test
	public void updateOne() {
		MongoClient mongoClient = MongoDBClient.getInstance().getClient();
		MongoDatabase database = mongoClient.getDatabase("admin");
		MongoCollection<Document> collection = database.getCollection("test");
	    Document filter = new Document();
	    filter.put("id", 4);
	    filter.put("username", "lisi");
	    filter.put("password", "lisi");
	    Document updateContent = new Document();
	    updateContent.put("username", "lisinew");
	    updateContent.put("password", "lisinew");
	    BasicDBObject update = new BasicDBObject("$set", updateContent); 
	    UpdateResult result = collection.updateOne(filter, update);
		System.out.println(result.wasAcknowledged());
		System.out.println(result.getMatchedCount());
		System.out.println(result.getModifiedCount());
	}
	
	@Test
	public void updateMany() {
		MongoClient mongoClient = MongoDBClient.getInstance().getClient();
		MongoDatabase database = mongoClient.getDatabase("admin");
		MongoCollection<Document> collection = database.getCollection("test");
	    Document filter = new Document();
	    filter.put("username", "zhangsan");
	    Document updateContent = new Document();
	    updateContent.put("username", "zhangsanupdate");
	    updateContent.put("password", "zhangsanupdate");
	    Document update = new Document("$set", updateContent); 
	    UpdateResult result = collection.updateMany(filter, update);
		System.out.println(result.wasAcknowledged());
		System.out.println(result.getMatchedCount());
		System.out.println(result.getModifiedCount());
	}
	
	@Test
	public void delete() {
		MongoClient mongoClient = MongoDBClient.getInstance().getClient();
		MongoDatabase database = mongoClient.getDatabase("admin");
		MongoCollection<Document> collection = database.getCollection("test");
	    Document filter = new Document();
	    filter.put("id", 2);
		Document deleteDocuemnt = collection.findOneAndDelete(filter);
		System.out.println(deleteDocuemnt);
	}
	
	@Test
	public void findByFilter() {
		MongoClient mongoClient = MongoDBClient.getInstance().getClient();
		MongoDatabase database = mongoClient.getDatabase("admin");
		MongoCollection<Document> collection = database.getCollection("test");
	    Document filter = new Document();
	    filter.put("id", 1);
		FindIterable<Document> docs = collection.find(filter);
		MongoCursor<Document> iterator = docs.iterator();
		while (iterator.hasNext()) {
			Document doc = iterator.next();
			System.out.println(doc);
		}
		mongoClient.close();
	}
	
	
	@Test
	public void findAll() {
		MongoClient mongoClient = MongoDBClient.getInstance().getClient();
		MongoDatabase database = mongoClient.getDatabase("admin");
		MongoCollection<Document> collection = database.getCollection("test");
		FindIterable<Document> docs = collection.find();
		MongoCursor<Document> iterator = docs.iterator();
		while (iterator.hasNext()) {
			Document doc = iterator.next();
			System.out.println(doc);
		}
		mongoClient.close();
	}
	
	@Test
	public void findAllWithPagination() {
		MongoClient mongoClient = MongoDBClient.getInstance().getClient();
		MongoDatabase database = mongoClient.getDatabase("admin");
		MongoCollection<Document> collection = database.getCollection("test");
		FindIterable<Document> docs = collection.find().skip(5).limit(5);
		MongoCursor<Document> iterator = docs.iterator();
		while (iterator.hasNext()) {
			Document doc = iterator.next();
			System.out.println(doc);
		}
		mongoClient.close();
	}
	
	@Test
	public void bulk() {
		MongoClient mongoClient = MongoDBClient.getInstance().getClient();
		MongoDatabase database = mongoClient.getDatabase("admin");
		MongoCollection<Document> collection = database.getCollection("test");
		List<WriteModel<Document>> requests = new ArrayList<WriteModel<Document>>();
		
		Document insertOneDoc = new Document();
		insertOneDoc.append("id", 6).append("username", "zhangsan6").append("password", "zhangsan6");
		InsertOneModel<Document> insertOne = new InsertOneModel<Document>(insertOneDoc);
		requests.add(insertOne);
		
		Document filter = new Document();
	    filter.put("id", 4);
	    Document updateContent = new Document();
	    updateContent.put("username", "lisibulkupdate");
	    updateContent.put("password", "lisibulkupdate");
	    Document update = new Document("$set", updateContent); 
		UpdateOneModel<Document> updateOne = new UpdateOneModel<Document>(filter, update);
		requests.add(updateOne);
		
		Document deleteFilter = new Document();
		deleteFilter.put("id", 4);
		DeleteOneModel<Document> deleteOne = new DeleteOneModel<Document>(deleteFilter);
		requests.add(deleteOne);
		
		BulkWriteResult bwr = collection.bulkWrite(requests);
		System.out.println(bwr.getMatchedCount());
		System.out.println(bwr.getInsertedCount());
		System.out.println(bwr.getModifiedCount());
		System.out.println(bwr.getDeletedCount());
		
		mongoClient.close();
	}

}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值