java 操作mongod

一、搬砖

  电脑里的老笔记,早忘了是从哪搬来的了,整理成笔记。如有雷同,纯属巧合。

1.1 下载安装

官方网站:http://www.mongodb.org/
安装步骤:
步骤1:
压缩版本:mongodb-win32-x86_64-2008plus-ssl-3.0.2.zip(不建议使用,容易报错:计算机中丢失libeay32.dll)
安装版本:mongodb-win32-x86_64-2008plus-ssl-3.0.2-signed.msi(安装版自带有libeay32.dll文件)
步骤2:
将MongoDB的bin目录配置PATH环境变量中,方便快速使用其命令。

1.2 基本操作

1.2.1 ddm

1.启动MongoDB服务(端口默认为27017)

  • 配置MongoDB数据存放位置 mongod --dbpath H:\MongoDB\data
  • 重定向日志输出到日志文件(日志默认输出到控制台中)。 mongod --dbpath H:\MongoDB\data
    –logpath H:\MongoDB\logs.txt

2. 连接MongoDB

  • 最简单的连接(默认连接到本机的test数据库).
    mongo 127.0.0.1:27017/test
    简写: mongo
  • 连接到指定IP指定数据库中.
    mongo IP:端口/test

3.基本操作命令

  • 查询所有的数据库
    show dbs
  • 使用指定的数据库
    use databaseName
  • 查询当前数据库中所有的集合(表)
    show collections

4. MongoDB客户端工具-MongoVUE

  • 显示创建collection:
    db.createCollection(‘collectionName’)
  • 隐式创建collection(插入数据前创建):
    db.collectionName.insert(document);
  • 删除collection:
    db.collectionName.drop() ,
  • 删除database:
    db.dropDatabase();
  • 统计Collection中文档数量:
    db.collectionName.count();

1.2.2 ddl

插入数据操作:
语法: db.collectionName.insert(document);
注意: mongodb存储的是文档, 文档是json格式的对象。

比如操作user集合(表).
1: 增加单个文档。
db.user.insert({name:“will”,age:17});
2: 增加单个文档,并指定_id。
db.user.insert({_id:22,name:“will”,age:17,gender:“boy”,email:“will@itsource.cn”});
3: 增加多个文档。
db.user.insert([
{name:“张三”,age:17},
{name:“李四”,age:18},
{name:“王五”,age:19}
]);

删除操作:

语法: db.collectionName.remove(查询表达式, 是否删除多条选项);
选项是指 {justOne:true/false},是否只删一行, 默认为false.

比如操作user集合(表).
注意:
1: 查询表达式依然是个json对象
2: 查询表达式匹配的行,将被删掉.
3: 如果不写查询表达式,collections中的所有文档将被删掉.
1:删除user集合中_id属性值为9527的文档 。
db.user.remove({_id:9527});
2:删除user集合中gender属性为boy的文档(默认删除多条数据)。
db.user.remove({gender:“boy”});
3:删除user集合中gender属性为girl的文档,只删除1行。
db.user.remove({gender:“boy”},true);

更新操作:
语法: db.collectionName.update(查询条件,更新的数据,是否修改多条);

比如操作user集合(表).
1:修改user集合中name为张三改成小王。
db.user.update({name:“张三”},{name:“西门吹雪”});
此时出现:其他的属性全部消失.
db.user.update({name:“李四”},{KaTeX parse error: Expected 'EOF', got '}' at position 18: …t:{name:"西门吹雪"}}̲); 2:修改user集合中所…set:{age:99}},{multi:true});

查询操作:
语法: db.collectionName.find(查询表达式,查询的列);

比如操作user集合(表).
1:查询所有user集合中文档的数据。
db.user.find();
2:查询user集合中所有的gender属性 (_id属性默认总是查出来)。
db.user.find({},{gender:true});
3:查询user集合中所有的gender属性,且不查询_id属性。
db.user.find({},{_id:false,gender:true});
4:查询user集合中所有gender属性值为boy的文档中的name属性。
db.user.find({gender:“boy”},{_id:false,name:true});
5:查询user集合中所有gender属性值为boy并且年龄大于等于17的文档中的name属性。
db.user.find({gender:“boy”,age:{$gte:17}},{_id:false,name:true,age:true});

1.3 概述

MongoDB是一个高性能,开源,无模式的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值存储方式,是当前NoSQL数据库中比较热门的一种。
MongoDB使用C++开发。不支持SQL,但有自己功能强大的查询语法。MongoDB使用BSON作为数据存储和传输的格式。
BSON是一种类似JSON的二进制序列化文档,支持嵌套对象和数组。MongoDB很像MySQL,collection对应MySQL的table,document对应MySQL的row。
官方网站:http://www.mongodb.org/
官方给自己的定义是Key-value存储(高性能和高扩展)和传统RDBMS(丰富的查询和功能)之间的一座桥梁。

MongoDB存取原理:
内部执行引擎为JS解释器(解释符合JS语法的语句):
插入操作:把JSON对象数据存储成BSON结构的文档结构,
查询操作:把BSON结构数据转换为JSON对象.

在这里插入图片描述

在这里插入图片描述

二、java 代码

		<dependency>
			<groupId>org.mongodb</groupId>
			<artifactId>mongo-java-driver</artifactId>
			<version>3.6.1</version>
		</dependency>

public class App {

	public void testInsert() {
		MongoClient client = new MongoClient("localhost", 27017);
		MongoDatabase db = client.getDatabase("user");
		MongoCollection<Document> collection = db.getCollection("user");
		Map<String, Object> map = new HashMap<>();
		map.put("name", "西门吹雪");
		map.put("age", 32);
		map.put("gender", "男");
		Map<String, Object> hobbyMap = new HashMap<>();
		hobbyMap.put("lang", "Java");
		hobbyMap.put("girl", "美女");
		map.put("hobby", hobbyMap);
		// 插入操作
		org.bson.Document doc = new org.bson.Document(map);
		collection.insertOne(doc);
		// 释放资源
		client.close();
	}
	

	public void testFindAll() {
		MongoClient client = new MongoClient("localhost", 27017);
		MongoDatabase db = client.getDatabase("user");
		MongoCollection<Document> collection = db.getCollection("user");
		
		FindIterable<Document> it=collection.find();
		
		MongoCursor<Document> cursor=it.iterator();
		 while(cursor.hasNext()) {
			 Document doc=cursor.next();
			 String name=doc.getString("name");
			 Double age=doc.getDouble("age");
			 System.out.println(name+" , "+age);
		 }
	        client.close();

		
	}
	
	@Test
	public void testFindOne() {
		MongoClient client = new MongoClient("localhost", 27017);
		MongoDatabase db = client.getDatabase("user");
		MongoCollection<Document> collection = db.getCollection("user");

		Bson filter =new BasicDBObject("_id",new ObjectId("5a732487e35a31317290ba8d")) ;
		FindIterable<Document> it=collection.find(filter);
		
		MongoCursor<Document> cursor=it.iterator();
		 while(cursor.hasNext()) {
			 Document doc=cursor.next();
			 String name=doc.getString("name");
			 System.out.println(name);
		//	 int age=doc.getInteger("age");
		//	 System.out.println(name+" , "+age);
		 }
		 
	        client.close();

	}

	public void testUpdate() {
		MongoClient client = new MongoClient("localhost", 27017);
		MongoDatabase db = client.getDatabase("user");
		MongoCollection<Document> collection = db.getCollection("user");	
		Bson filter =new BasicDBObject("_id",new ObjectId("5a732487e35a31317290ba8d")) ;
        Map<String,Object> map=new HashMap<>();
        map.put("name", "小李");
        map.put("age", "17");
        Bson update=new BasicDBObject(map);
        collection.updateOne(filter, new BasicDBObject("$set", update));
        client.close();
	}
	
	public void testRemov() {
		
		MongoClient client = new MongoClient("localhost", 27017);
		MongoDatabase db = client.getDatabase("user");
		MongoCollection<Document> collection = db.getCollection("user");	
		
		collection.deleteOne(new BasicDBObject("_id",new ObjectId("5a732487e35a31317290ba8d")));
		 client.close();
	}
	
}






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值