Node.js day024

117 阅读3分钟

1、MongoDB基础:以JSON为主格式,自由

MySQL的SQL语句是关系型数据库通用的
Mongo是非关系型

1、安装&启动mongo

	1、解压代老师提供的mongodb-win32-x86_64-2008plus-ssl-3.6.11.zip文件
	2、解压好了进入到bin文件夹:mongo.exe(客户端) 和 mongod.exe(服务器端)
	3、如何启动:
		在当前bin文件夹打开命令行cmd或powershell都可以,但是路径千万不能有中文,输入:.\mongod.exe --dbpath=你想要的绝对路径地址 - 服务器启动成功
		服务器开好,千万不要关闭
		再打开一个命令行,输入:.\mongo.exe - 再打开上一个服务器命令行看看是否连接成功 - 客户端开启成功

2、mongo语法:- 目前都是在客户端的命令行里面使用

	1、数据库操作:
		1、查询数据库:show dbs
		2、创建/切换数据库:use 数据库名称; - 如果是一个空的数据库,show dbs是查看不到的,至少要创建一个表才能看到
		3、查看当前选中的数据库:db
		4、创建数据表:db.createCollection("表名");
		5、删除数据库:db.dropDatabase() - 能忘了就忘了,会坐牢

	2、数据表操作:
		1、创建数据表:db.createCollection("表名",{size:5242880,capped:true,max:5000}); - 第二个参数限制操作,最大存储空间为5M,最多为5000条数据 - 个人不推荐做限制
		2、查看目前所有的数据表:db.getCollectionNames();
		3、删除数据表:db.表名.drop();

	3、数据操作:
		1、增:db.表名.save({属性名:属性值,....}) - 一次只能插入一条数据			-		注册
		     举例:db.users.save({name:"hjf",age:18,pwd:"123123",email:"hjf@qq.com",vip:"0"})
		             db.表名.save([{},{},{},...]) - 一次只能插入一条数据
		     个人建议:键名要统一

		2、删:db.表名.remove({键值对})					-  注销账号
		     举例:	db.表名.remove({username:"lr"})

		3、改:db.表名.update({条件},{要改的新内容})				-  修改密码
		     举例:db.表名.update({name:"paoge",pwd:"666666"},{age:17}) - 这句话会把名字为paoge和密码为666666的替换为只剩age为17
			db.表名.update({name:"paoge",pwd:"666666"},{$set:{age:17}}) - 仅仅只修改了age

		     最难的:
		4、查:db.表名.find({}) - 所有的
		             db.表名.find({age:18}) - 找到所有年龄为18的数据
		             db.表名.find({age:{$gte:18}}) - 找到所有年龄大于等于18的数据
		             db.表名.find({name:/正则/}) - 甚至可以写入正则来进行模糊查询
		             db.表名.find({},{name:1,age:1}) - 只需要name和age,其他的不要,10相当于是开关 - 我们登陆时只需要判断用户名和密码是否正确
		             db.表名.find().sort({age:1}) - 按照age升序排列,降序的话换为-1
		             db.表名.find().skip(0).limit(2) - 跳过前0条,再拿2条,可以理解为前两条;
		             db.表名.find().count() - 获取此表有多少条数据

2、安装一个mongoDB图形化界面:更美观,更方便 - 主要用于看

安装mongodb-compass-1.33.1-win32-x64.exe

Node.js操作mongoDB

1、安装mongoose第三方模块

	2、使用步骤:
		1、引入:var mongoose = require('mongoose');
		2、服务器端【连接】数据库:mongoose.connect("mongodb://127.0.0.1/h52205");
		3、创建/选择一个新的数据表的同时,设置数据类型的控制,防止用户乱输
			//创建数据类型
			const userSchema=mongoose.Schema({
				name: String,
				age: Number,
				pwd: String
			})
			//创建数据表以及设置数据类型
			//		            模型名称
			var User=mongoose.model("User",userSchema,"数据表名");

		4、新增:
			//使用模型/构造函数 - 创建出我们需要新增的对象
			var user=new User({
				name:"dy1",
				age:20,
				pwd:"123123"
			})
			//把创建好的对象,放到数据库中
			user.save((err)=>{//回调函数:
				console.log(err);//检查错误或者返回东西给前端
			})

		5、删除:
			User.remove/deleteOne/deleteMany({age:18},(err)=>{//不推荐remove再mongoose第三方模块中已经被淘汰了,会有一个警告
				console.log(err);//检查错误或者返回东西给前端
			})

		6、修改:
			User.update/updateOne/updateMany({条件},(err)=>{//不推荐update再mongoose第三方模块中已经被淘汰了,会有一个警告
				console.log(err);//检查错误或者返回东西给前端
			})

		7、查找:
			User.find({条件-上午教你的},(err,result)=>{
				console.log(result);
                                result:返回的是一个数据格式JSON 得到一个[{},{}]
			})