18软工 mongoDB操作0323

副本集

参考网址:

https://blog.csdn.net/wanght89/article/details/77677271

将4.2文件夹复制三份
在这里插入图片描述
创建3个db文件夹 3个log文件夹
在这里插入图片描述

启动Master

1.启动路径:C:\Program Files\MongoDB\Server\master\bin
1.启动命令:
mongod -port 27111 -dbpath C:\data\masterdb -logpath C:\data\masterlog\mongodb.log -replSet mySet -logappend
在这里插入图片描述

启动Slave

1.切换 C:\Program Files\MongoDB\Server\slave\bin
2.执行 mongod -port 27112 -dbpath C:\data\slavedb -logpath C:\data\slavelog\mongodb.log -replSet mySet -logappend
在这里插入图片描述

启动Arbiter

C:\Program Files\MongoDB\Server\arbiter\bin
mongod -port 27113 -dbpath C:\data\arbiterdb -logpath C:\data\arbiterlog\mongodb.log -replSet mySet -logappend
在这里插入图片描述
在这里插入图片描述
1.登录master
mongo -port 27111
在这里插入图片描述
2.在初始化之前先查看一下rs状态
rs.status()
ok 0 没有找到副本集的配置信息
在这里插入图片描述
3.执行初始化 再次查看状态

rs.initiate() 在这里插入图片描述
rs.status()
在这里插入图片描述
4.为副本集添加副本
在这里插入图片描述
rs.add(“localhost:27112”)
添加成功啦 ok=1
在这里插入图片描述
再次查看rs.status()
发现副本集中有两个节点啦。而且27111是主节点,27112是从节点
在这里插入图片描述

Java 操作

java连接mongoDB 并进行增删改查操作

  1. 下载jar包到本地 超星 资料
  2. 打开eclipse 里面默认有一个demo项目 运行会输出Hello word
  3. 在Demo里新建一个libs 目录在这里插入图片描述
    4.把jar复制进去 jar上面点击右键 build path Add
    在这里插入图片描述
  4. 写代码
import org.bson.Document;
import org.bson.conversions.Bson;

import com.mongodb.MongoClient;
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.Filters;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;

public class Main {
	private static MongoClient mongoClient;
	private static MongoDatabase mongoDatabase;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("hello world");
		
		// 初始化客户端
		mongoClient = new MongoClient();
		// 连接到数据库
		mongoDatabase = mongoClient.getDatabase("test");
		

		// 插入一条数据
		// insertOneDoc();
		
		// 删除一条数据
		// deleteOneDoc();
		
		// 修改一条数据
		updateOneDoc();
		
		// 查询数据
		findDocs();
		

	}

	private static void updateOneDoc() {
		// 获取集合
		MongoCollection<Document> col = mongoDatabase.getCollection("user");
		
		// 条件
		Bson filter = Filters.eq("name", "lisa");
		
		// 更新的内容
		Document docUpdate = new Document("$set", new Document("name", "贾玲"));
		
		// 更新
		UpdateResult result = col.updateOne(filter, docUpdate);
		
		long count = result.getModifiedCount();
		System.out.println("更新了" + count +"条");
	}

	private static void deleteOneDoc() {
		// 获取集合
		MongoCollection<Document> col = mongoDatabase.getCollection("user");
		
		Bson filter = Filters.eq("age",20);
		DeleteResult result = col.deleteOne(filter);
		
		long count = result.getDeletedCount();
		System.out.println("删除了" + count + "条");		
	}

	/**
	 * 查询数据
	 */
	private static void findDocs() {
		// 获取集合
		MongoCollection<Document> col = mongoDatabase.getCollection("user");
		
		// 增加查询条件
//		Bson filter = Filters.lt("age", 20);
		
		FindIterable<Document> docs = col.find();
		MongoCursor<Document> cursor = docs.iterator();
		
		while(cursor.hasNext()) {
			System.out.println(cursor.next());
		}
	}

	/**
	 * 插入一条数据
	 */
	private static void insertOneDoc() {
		// 获取集合
		MongoCollection<Document> col = mongoDatabase.getCollection("user");

		// 集合操作 增加
		// 创建一条文档
		Document doc = new Document().append("name", "张三").append("age", 20).append("sex", true);

		col.insertOne(doc);
	}

}


数据初始化

// 插入数据
db.col1.insert({name:"lisi", age:20, score:100})
db.col1.insert({name:"xiaoming", age:22, score:80})
db.col1.insert({name:"zhangsan", age:23, score:60})
db.col1.insert({name:"wangwu", age:24, score:40})
db.col1.insert({name:"zhaoliu", age:25, score:75})
db.col1.insert({name:"songjiang", age:28, score:90})
年龄大于22 (分数大于80 或者 分数小于60)
db.col1.find({age:{$gt:22}, $or:[{score:{$gt:80}},{score:{$lt:60}}]})

将bin路径加入到系统的环境变量

计算机 属性 环境变量 Path 末尾加英文分号 再加入
C:\Program Files\Git\cmd;C:\Program Files\MongoDB\Server\4.2\bin

服务端运行 mongod
在这里插入图片描述
客户端运行mongo
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
内嵌文档
在这里插入图片描述
查看数据库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果要删除test 先切换到test 再执行dropDatabase()

创建和删除集合
显式创建
在这里插入图片描述
隐式创建
在这里插入图片描述
save和insert
在这里插入图片描述
insertMany()
在这里插入图片描述
db.col1.insert({name:“zhangsan”, age:20})
db.col1.insert({name:“lisi”, age:18})
db.col1.insert({name:“lisi”, age:20})
db.col1.insert({name:“lisi”, age:22})
db.col1.insert({name:“zhaoliu”, age:19})
db.col1.insert({name:“wangwu”, age:21})

db.col1.update({name:“zhangsan”},{$set:{name:“MongoDB”}})

db.col1.update({name:“lisi”},{$set:{name:“MongoDB”}})

db.col1.update({name:“MongoDB”},{$set:{name:“cainiao”}})

db.col1.update({name:“cainiao”},{$set:{name:“zhangsan”}},{multi:true})

把wangwu年龄更新为18岁
db.col1.update({name:“wangwu”},{$set:{age:18}})

再把两个18岁 一次更新为28岁
db.col1.update({age:22},{$set:{age:28}},{upsert:true, multi:true})

Mysql删除
delete from student where age > 18;

MongoDB删除
db.col1.remove({age:19})
db.col1.remove({name:“wangwu”})
db.col1.remove({name:“zhangsan”})

全部删除
db.col1.remove({})

练习:

  1. age 18 改为20
    db.col1.update({age:18},{$set:{age:20}})

  2. 删除20 只删除一条
    db.col1.remove({age:20},{justOne:true})

查询
find()
db.col1.find({age:20})
结果美化
pretty
db.col1.find().pretty()

等于
db.col1.find({age:20})
db.col1.find({name:“zhangsan”})

小于
db.col1.find({age:{$lt:20}})

小于等于
db.col1.find({age:{$lte:20}})

大于
db.col1.find({age:{$gt:20}})

大于等于
db.col1.find({age:{$gte:20}})

不等于20
db.col1.find({age:{$ne:20}})

练习:
1.查询姓名不是zhangsan
db.col1.find({name:{$ne:“lisi”}})

将光标移到末尾 End 上下左右箭头上面位置
按住shift 按Home

2.查询姓名大于lisi
db.col1.find({name:{$gt:“wangwu”}})

AND条件
db.col1.find({age:{KaTeX parse error: Expected 'EOF', got '}' at position 6: gt:18}̲, age:{lt:21}})
db.col1.find({age:{KaTeX parse error: Expected 'EOF', got '}' at position 6: gt:19}̲, name:{gt:“lisi”}})

练习
查询年龄等于20 并且姓名等于XXX
查询年龄小于20 并且姓名小于xxx

OR条件
db.col1.find({KaTeX parse error: Expected 'EOF', got '}' at position 23: …e:18},{age:19}]}̲) db.col1.find(…or:[{age:{KaTeX parse error: Expected 'EOF', got '}' at position 6: lt:19}̲},{age:{gt:21}}]})
db.col1.find({KaTeX parse error: Expected '}', got 'EOF' at end of input: …angsan"},{age:{gt:21}}]})

数据初始化

// 插入数据
db.col1.insert({name:"lisi", age:20, score:100})
db.col1.insert({name:"xiaoming", age:22, score:80})
db.col1.insert({name:"zhangsan", age:23, score:60})
db.col1.insert({name:"wangwu", age:24, score:40})
db.col1.insert({name:"zhaoliu", age:25, score:75})
db.col1.insert({name:"songjiang", age:28, score:90})

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值