非关系数据库:MongoDB数据操作(基础)

关系数据库 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\| 非关系数据库
表 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\| 集合
行\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\| 文档
列 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\| 字段
主键 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\| \\\\\\\\\\\\\\\\\\\\\\\\\ 主键

mongodb启动(命令窗口): 进入mongodb的安装目录
执行 mongod --dbpath 指定数据库路径(如果是第一次可根据自己的习惯在任意盘下建立文件夹\mongondb\data\db(随意))

连接mongodb(命令窗口): 进入mongodb的安装目录
执行 mongo

mongodb的数据结构:是key-value的形式储存
数据库操作:
db:显示当前使用的是哪一个数据库
show dbs:显示所有数据库(显示的数据库里面都有数据,如果是刚创建的数据库并没有插入数据那么是不会显示的)
use demo(demo是一个数据库名) 如果存在这个数据库则切换到这个数据库,如果没有则创建这个数据库并切换

创建集合:
db.createCollection(‘name’,options)
name是要创建的集合的名称
options是一个文档,用于指定集合的配置
选项​​参数是可选的,所以只需要到指定的集合名称。以下是可以使用的选项列表:
例1:不限制集合大小
db.createCollection(“stu”)
例2:限制集合大小,后面学会插入语句后可以查看效果
参数capped:默认值为false表示不设置上限,值为true表示设置上限
参数size:当capped值为true时,需要指定此参数,表示上限大小,当文档达到上限时,会将之前的数据覆盖,单位为字节
db.createCollection(“sub”, { capped : true, size : 10 } )
查看当前数据库的集合:
show collections 或者 show tables
删除集合:
db.集合名称.drop()

db.info.insert({name:‘tets’,age:10})插入一个文档
db.info.insert({name:‘tets’,age:10,language:[‘java’,‘javascript’,‘oracle’,‘python’]})插入一个文档

db.info.find() 查询数据库集合为info下的所有文档信息,(查询所有数据时不需要{})
db.info.find({name:‘tets’})查询指定文档的信息
db.info.find().pretty()格式化输出(以键值对格式化数据)
db.info.find({age:{$gt:1}})查询年龄大于1的数据
大于$gt db.info.find({age:{$gt:1}})
小于$lt db.info.find({age:{$lt:1}})
大于等于$gte db.info.find({age:{$gte:1}})
小于等于$lte db.info.find({age:{$lte:1}})
不等于$ne db.info.find({age:{$ne:1}})
在集合$in db.info.find({age:{$in:[12,34,55]}}) age在12,34,55中的数据
不在集合中$nin db.info.find({age:{$nin:[12,34,55]}}) age不在12,34,55中的数据
$size(通常用于查询数组) db.info.find({language:{$size:2}})查询language的大小(长度)等于2的数据
$exists 是否存在某个字段 db.info.find(language:{$exists:false|true})查找有这个字段的数据 true,false写一个
$or多个条件满足一个 db.info.find($or:[{age:21},{name:‘zf’}])
模糊查询:条件是一个正则表达式(同js里面写正则表达式一样用//在中间就可以写正则了)
db.info.find({name:/^z/})查询name ,以z开关的数据 /z$/以z结尾的数据
并且的查询语句如下:
db.info.find({age:{$lt:20,$gt:10}}) 相当于<20 and >10的数据

排序:db.集合名.find().sort({键名:1},{键名:-1}) 1代表升序,-1代表降序 键名是参与排序的字段
db.info.find({}).sort({age:-1,name:1}) 查询出数据后对age字段进行降序排列,再对name字段进行升序排列(如果age相同再对name排序)find中的{}可写可不写

限制输出 :
limit()
db.info.find().limit(2) 输出2条数据,如果limit(0)不限制S
db.info.find().sort({age:-1}).limit(3) 查找年龄最大的三条记录

跳过多少条:
skip()
db.info.find({}).sort(age:1).skip(2).limit(2) 按年龄升序排列,跳过两条数据,取两条数据

count()统计条数:
db.info.find({age:21}).count() 统计年龄=21的有多少条记录

备份与恢复
语法
mongodump -h dbhost -d dbname -o dbdirectory
-h:服务器地址,也可以指定端口号
-d:需要备份的数据库名称
-o:备份的数据存放位置,此目录中存放着备份出来的数据
例1
sudo mkdir test1bak
sudo mongodump -h 192.168.196.128:27017 -d test1 -o ~/Desktop/test1bak
恢复
语法
mongorestore -h dbhost -d dbname --dir dbdirectory
-h:服务器地址
-d:需要恢复的数据库实例
–dir:备份数据所在位置
例2
mongorestore -h 192.168.196.128:27017 -d test2 --dir ~/Desktop/test1bak/test1

db.info.remove({name:‘tets’})删除字段name=tets的文档
db.info.remove({})删除所有数据(删除所有数据时,中间必须有一个{})

db.info.update({name:‘tets’},{age:88})修改字段name=tets的文档内容为 age=88(但其它字段就没有了)
查询条件 修改内容
db.info.update({name:‘tets’},{$set:{age:20}})修改字段name=tets的文档内容中的age=20

db.dropDatabase()删除数据库(删除的是其内容),切换到对应的数据库才可以删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值