MongoDB简介
MongoDB使用C++语言编写的非关系型数据库。特点是高性能、易部署、易使用,存储数据十分方便
主要特征
SQL和NoSQL对比
对比项win10安装
下载:
配置变量:安装路径为D:MongoDB,将D:MongoDBbin目录加入环境变量
net start MongoDB
net stop MongoDB
mongod.exe
mongo.exe
MongoDB支持的数据类型:
? 字符串?- 这是用于存储数据的最常用的数据类型。MongoDB中的字符串必须为UTF-8-- 此类型用于存储布尔值(true?/-/最大键?------------ 此数据类型用于存储正则表达式。
数据库操作
use userinfo
<span style="color: #008000;"># <span style="color: #008000;">查
show dbs <span style="color: #008000;">#<span style="color: #008000;"> 查看所有,databases的简写
<span style="color: #008000;"># <span style="color: #008000;">删
use config <span style="color: #008000;">#<span style="color: #008000;"> 先切换到要删的库下
db.dropDatabase() <span style="color: #008000;">#<span style="color: #008000;"> 删除当前库
注意:新创建的数据库中没有数据,直接查看所有数据库是查看不到的, 需要往数据库中插入数据后才能查看
集合操作
use database1
db.table1.insert({:1})
db.table2.insert({:2})
<span style="color: #008000;">#<span style="color: #008000;"> 查
show tables <span style="color: #008000;">#<span style="color: #008000;"> 查看所有集合,此时有table1,table2
<span style="color: #008000;"># <span style="color: #008000;">删
db.table1.drop() <span style="color: #008000;">#<span style="color: #008000;"> 删除table1,此时只剩table2了
文档操作
增
注意:没有指定_id则默认ObjectId,_id不能重复,且在插入后不可变
user0=::10:[,,::db.test.insert(user0) <span style="color: #008000;">#<span style="color: #008000;"> 插入数据
db.test.find() <span style="color: #008000;">#<span style="color: #008000;"> 查看数据
user1=:1::11:[,,:user2=<span style="color: #000000;">{
<span style="color: #800000;">"<span style="color: #800000;">_id<span style="color: #800000;">":2<span style="color: #000000;">,<span style="color: #800000;">"<span style="color: #800000;">name<span style="color: #800000;">":<span style="color: #800000;">"<span style="color: #800000;">小美<span style="color: #800000;">"<span style="color: #000000;">,<span style="color: #800000;">"<span style="color: #800000;">age<span style="color: #800000;">":12<span style="color: #000000;">,<span style="color: #800000;">'<span style="color: #800000;">hobbies<span style="color: #800000;">':[<span style="color: #800000;">'<span style="color: #800000;">唱歌<span style="color: #800000;">',<span style="color: #800000;">'<span style="color: #800000;">跑步<span style="color: #800000;">'<span style="color: #000000;">],<span style="color: #800000;">'<span style="color: #800000;">city<span style="color: #800000;">':<span style="color: #800000;">'<span style="color: #800000;">hebei<span style="color: #800000;">'<span style="color: #000000;">
}
}
user3=<span style="color: #000000;">{
<span style="color: #800000;">"<span style="color: #800000;">_id<span style="color: #800000;">":3<span style="color: #000000;">,<span style="color: #800000;">"<span style="color: #800000;">name<span style="color: #800000;">":<span style="color: #800000;">"<span style="color: #800000;">小强<span style="color: #800000;">"<span style="color: #000000;">,<span style="color: #800000;">"<span style="color: #800000;">age<span style="color: #800000;">":13<span style="color: #000000;">,<span style="color: #800000;">'<span style="color: #800000;">打游戏<span style="color: #800000;">'<span style="color: #000000;">],<span style="color: #800000;">'<span style="color: #800000;">city<span style="color: #800000;">':<span style="color: #800000;">'<span style="color: #800000;">heibei<span style="color: #800000;">'<span style="color: #000000;">
}
}
user4=<span style="color: #000000;">{
<span style="color: #800000;">"<span style="color: #800000;">_id<span style="color: #800000;">":4<span style="color: #000000;">,<span style="color: #800000;">"<span style="color: #800000;">name<span style="color: #800000;">":<span style="color: #800000;">"<span style="color: #800000;">小帅<span style="color: #800000;">"<span style="color: #000000;">,<span style="color: #800000;">"<span style="color: #800000;">age<span style="color: #800000;">":14<span style="color: #000000;">,<span style="color: #800000;">'<span style="color: #800000;">看书<span style="color: #800000;">',<span style="color: #800000;">'<span style="color: #800000;">跑步<span style="color: #800000;">',<span style="color: #800000;">'<span style="color: #800000;">爬山<span style="color: #800000;">'<span style="color: #000000;">],<span style="color: #800000;">'<span style="color: #800000;">city<span style="color: #800000;">':<span style="color: #800000;">'<span style="color: #800000;">BJ<span style="color: #800000;">'<span style="color: #000000;">
}
}
user5=<span style="color: #000000;">{
<span style="color: #800000;">"<span style="color: #800000;">_id<span style="color: #800000;">":5<span style="color: #000000;">,<span style="color: #800000;">"<span style="color: #800000;">name<span style="color: #800000;">":<span style="color: #800000;">"<span style="color: #800000;">二蛋<span style="color: #800000;">"<span style="color: #000000;">,<span style="color: #800000;">"<span style="color: #800000;">age<span style="color: #800000;">":15<span style="color: #000000;">,<span style="color: #800000;">'<span style="color: #800000;">看书<span style="color: #800000;">'<span style="color: #000000;">,],<span style="color: #800000;">'<span style="color: #800000;">city<span style="color: #800000;">':<span style="color: #800000;">'<span style="color: #800000;">henan<span style="color: #800000;">'<span style="color: #000000;">
}
}
db.user.insertMany([user1,user2,user3,user4,user5])
查
比较运算符:{key:value}代表什么等于什么,"$ne","$gt","$lt","gte","lte",其中"$ne"能用于所有数据类型
db.user.find({:})
db.user.find({:{:}})
db.user.find({:{:2}}) 2 的数据
db.user.find({:{:3}})
db.user.find({:{:2,}}) =2 的数据
db.user.find({:{:2}})
逻辑运算符:字典中逗号分隔的多个条件是and关系,"$or"的条件放到[]内
db.user.find({:{:2,:4}}) = 2 and id < 4
db.user.find({:{:2},:{:14}}) = 2 and age < 14;
<span style="color: #008000;">#<span style="color: #008000;"> 查询 id >= 5 or name = "小花"
<span style="color: #000000;">db.user.find({
<span style="color: #800000;">"<span style="color: #800000;">$or<span style="color: #800000;">"<span style="color: #000000;">:[
{<span style="color: #800000;">'<span style="color: #800000;">_id<span style="color: #800000;">':{<span style="color: #800000;">"<span style="color: #800000;">$gte<span style="color: #800000;">":5<span style="color: #000000;">}},{<span style="color: #800000;">"<span style="color: #800000;">name<span style="color: #800000;">":<span style="color: #800000;">"<span style="color: #800000;">小花<span style="color: #800000;">"<span style="color: #000000;">}
]
})
db.user.find({<span style="color: #800000;">'<span style="color: #800000;">_id<span style="color: #800000;">':{<span style="color: #800000;">"<span style="color: #800000;">$mod<span style="color: #800000;">":[2,1]}}) <span style="color: #008000;">#<span style="color: #008000;"> 查询 id/2=1 的数据(取余)
db.user.find({<span style="color: #800000;">'<span style="color: #800000;">_id<span style="color: #800000;">':{<span style="color: #800000;">"<span style="color: #800000;">$not<span style="color: #800000;">":{<span style="color: #800000;">"<span style="color: #800000;">$mod<span style="color: #800000;">":[2,1]}}}) <span style="color: #008000;">#<span style="color: #008000;"> # 查询 id/2!=1 的数据
成员运算符:"$in","$nin"
db.user.find({:{:[11,12,13]}})
db.user.find({:{:[‘小美’,]}})
正则匹配:/正则表达/i
db.user.find({:/^小.*?/i})
取指定字段:1代表显示,0代表不显示
db.user.find({:3},{nameage
db.user.find({:3},{:0})
db.user.find({:<span style="color: #008000;">#<span style="color: #008000;"> 查看既有唱歌爱好又有跳舞爱好的人
<span style="color: #000000;">db.user.find({
<span style="color: #800000;">'<span style="color: #800000;">hobbies<span style="color: #800000;">'<span style="color: #000000;">:{
<span style="color: #800000;">"<span style="color: #800000;">$all<span style="color: #800000;">":[<span style="color: #800000;">'<span style="color: #800000;">唱歌<span style="color: #800000;">',<span style="color: #800000;">'<span style="color: #800000;">跳舞<span style="color: #800000;">'<span style="color: #000000;">]
}
})
<span style="color: #008000;">#<span style="color: #008000;"> 查看第4个爱好为爬山的人
db.user.find({<span style="color: #800000;">"<span style="color: #800000;">hobbies.4<span style="color: #800000;">":<span style="color: #800000;">'<span style="color: #800000;">爬山<span style="color: #800000;">'<span style="color: #000000;">})
<span style="color: #008000;">#<span style="color: #008000;"> 查看所有人最后两个爱好
db.user.find({},{<span style="color: #800000;">'<span style="color: #800000;">hobbies<span style="color: #800000;">':{<span style="color: #800000;">"<span style="color: #800000;">$slice<span style="color: #800000;">":-2},<span style="color: #800000;">"<span style="color: #800000;">age<span style="color: #800000;">":0,<span style="color: #800000;">"<span style="color: #800000;">_id<span style="color: #800000;">":0,<span style="color: #800000;">"<span style="color: #800000;">name<span style="color: #800000;">":0,<span style="color: #800000;">"<span style="color: #800000;">addr<span style="color: #800000;">"<span style="color: #000000;">:0})
<span style="color: #008000;">#<span style="color: #008000;"> 查看所有人的第2个到第3个爱好
db.user.find({},{<span style="color: #800000;">'<span style="color: #800000;">hobbies<span style="color: #800000;">':{<span style="color: #800000;">"<span style="color: #800000;">$slice<span style="color: #800000;">":[2,3]},<span style="color: #800000;">"<span style="color: #800000;">addr<span style="color: #800000;">":0})
排序:sort(1代表升序,2代表降序)
db.user.find().sort({:1,})
db.user.find().sort({:-1,:1}
分页:limit代表取多少个document,skip代表跳过前多少个document
db.user.find().sort({:1}).limit(1).skip(2)
db.user.count({:{:13}}) 13 的个数
db.user.find({:{ |