Mongodb
一 链接Mongodb
(1) cd mongo安装的目录/bin
输入 mongod.exe –dbpath=路径
(2) 重新启动一个Windows的终端 再次进入到 mongo安装的目录/bin
cd mongo安装的目录/bin
mongo.exe #此刻 进入到Mongodb数据库了
二 对于库的操作
(1) 查看所有的库
show dbs
(2) 选择数据库 (如果使用的数据库存在 则使用 不存在 则创建)
use 库名
注意:
新创建的数据库 默认你是看不到的 可以使用db/db.getName() 去查看当前所在的库 往新的库里创建集合
使用库名中之后的删除操作:
db.dropDatabase()
(3) 查看当前所在的数据库
1. db
2. db.getName()
(4) 创建集合(也就是创建表)
- db.createCollection(“集合名”)
例如:db.createCollection(“user”) #创建一个user的集合 在当前的库里 - db.集合名.insert(文档) #如果 当前的集合名不存在 那么就创建该集合 并插入文档(数据)
注意: Bjson 格式存储
1. 在库里对于文档 集合的操作 统一使用db. (db代表当前的库)
2. 严格区分大小写
(5) 查看当前库下的所有集合
show collections
(5) 删除集合
db.集合名.drop()
三 INSERT/SAVE文档的添加
(1) 使用insert 如果是添加数据 建议使用 insert
db.集合名.insert(文档) #如果是添加数据 建议使用 insert
插入多条数据:
db.集合名.insert([文档]) #注意 一定要加[] 否则可能只会把 第一条文档插入进去
(2) 使用save
- db.集合名.save(文档) #新添加 一个文档
- db.集合名.save({id:ObjectId(“59a385d4a356cb252c1dcd73”),文档}) #对原有的数据进行覆盖 db.user.save({id:ObjectId(“59a385d4a356cb252c1dcd73”),name:”王五”})
四 UPDATE 文档的修改
更新操作符 set直接修改 s e t 直 接 修 改 inc累加修改
db.集合名.update(条件,数据,{multi:true})
db.user.update({name:”张三”},{$inc:{age:5}}) #修改name为张三的文档 将age在原有的基础上 加5
db.user.update({name:”张三”},{$set:{age:5}}) #修改name为张三的文档 将age的值 修改为5
db.user.update({name:”张三”},{$set:{age:5}},{multi:true}) #将所有name为张三的文档 的年龄 全部修改为 5
五 REMOVE 文档的删除
db.集合名.remove(条件) #默认将所有都匹配到的数据进行删除
db.集合名.remove(条件,1) #只删除 第一个匹配到的数据
db.t.remove({price:{$gte:16},price:{$lte:32}}) #删除 价格在 16-32之间的所有数据
六 FIND 查询
(1) find 查询所有
db.集合名.find([条件],{key1:1[,[key2:1]]}) #查询所有的数据 代表 显示哪些字段名
(2) findOne() 查询一条
db.集合名.findOne([条件],{key1:1[,[key2:1]]}) #查询一条数据 代表 显示哪些字段名
(3) count 统计数据条数
db.集合名.find([条件]).count()
(4) pretty() 展开来查看
db.集合名.find([条件]).pretty()
(5) 查询条件的操作符
1. $gt 大于 db.user.find({age:{$gt:18}})
2. $gte 大于等于 db.user.find({age:{$gte:20}})
3. $lt 小于 db.user.find({age:{$lt:20}})
4. $lte 小于等于 db.user.find({age:{$lte:20}})
5. 等于 {key:value} db.user.find({age:20})
6. 使用id来进行查询 {_id:ObjectId("id值")}
7. /数据/ 模糊查询 {name:/张/}
8. /^数据/ 以什么作为开头 {name:/^张/}
9. $in 在...之内 {age:{$in:[10,20]}} #查询所有数据 年龄为 10,20
10. $nin 不在...之内 {age:{$nin:[10,20]}}
(6) AND 查询
db.集合名.find({条件一,条件二,,,})
例如:
db.user.find({name:"张三",age:{$gt:10}}) #查询name为张三的 且 年龄 大于10岁的
db.user.find({name:"张三",age:10}) #查询name为张三的 且 年龄为10岁的
db.user.find({name:"张三",age:{$gte:10},age:{$lte:28}}) #name为张三 年龄 大于等于10 小于等于28
(7) OR 查询
db.集合名.find({$or:[{条件一},{条件二},,,]})
例如:
db.user.find({$or:[{name:"张三"},{name:"赵六"}]}) #查询name为张三 或者为赵六的所有数据
(8) AND 和 OR 的使用
db.集合名.find({条件一,,,$or:[{条件1},{条件2}]})
例如:
db.user.find({name:"张三",$or:[{age:10},{age:28}]}) #name为张三 年龄为10岁或者28岁的所有数据
(9) LIMIT 取值
db.集合名.find().limit(num) #从第0个开始取几个
例如:
db.user.find().limit(5) #从0开始取5条数据
(10) skip 跳过几个
db.集合名.find().skip(num) #t跳过几条数据
例如:
b.user.find().skip(2) #从第三条数据 取到最后
(11) limit skip 配合使用
db.集合名.find().skip().limit(num)
例如:
db.user.find().skip(2).limit(2) #从第三个开始 取2个
(12) SORT 排序
db.集合名.find().sort({key:1|-1}) #升序或者降序
例如:
db.user.find().sort({age:1}) #查询所有数据 按照年龄 升序
db.user.find().sort({age:-1}) #查询所有数据 按照年龄 降序
七 删除数据库
- 删除之前 最好use一下
- db.dropDatabase()
八 数据库的退出
exit