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,其他的不要,1和0相当于是开关 - 我们登陆时只需要判断用户名和密码是否正确
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)=>{
console.log(err);
})
6、修改:
User.update/updateOne/updateMany({条件},(err)=>{
console.log(err);
})
7、查找:
User.find({条件-上午教你的},(err,result)=>{
console.log(result);
result:返回的是一个数据格式JSON 得到一个[{},{}]
})