mongodb入门必备实操(二)

mongodb @type 操作符

在这里插入图片描述

以类型是string为例

db.col.find({‘title’:{$type:2}})

db.col.find({‘title’:{$type:‘string’}})
在这里插入图片描述

这两种方法的输出结果是一样的

mongodb limit与skip方法

mongodb limit()方法

db.集合名.find().limit(number)

db.col.find({},{‘title’:1,_id:0}).limit(2)
在这里插入图片描述

db.col.find().limit(2).pretty()
在这里插入图片描述

mongodb skip()方法

db.集合名.find().limit(number).skip(number)

db.col.find().limit(2).skip(1)

跳过第一个,显示两个
在这里插入图片描述

mongodb排序

mongodb sort()方法

db.集合名.find().sort({要排序的字段(key):1})

key的值:1为升序排列、-1为降序排列

db.col.find({},{‘title’:1,_id:0}).sort({‘likes’:-1})
在这里插入图片描述

db.col.find({},{‘title’:1,_id:0}).sort({‘likes’:-1})
在这里插入图片描述

按照likes字段,进行降序排列显示

mongodb 索引

createIndex()方法

mongodb中使用createIndex()方法来创建索引

db.集合名.createIndex(keys,option)

key值为你要创建的索引字段,1为指定按升序创建索引,-1为指定按降序创建索引

db.col.createIndex({‘title’:1})

在这里插入图片描述

也可以使用多个字段创建索引

db.col.createIndex({‘title’:1,‘description’:-1})

在这里插入图片描述

createIndex()接收可选参数,可选参数列表如下:
在这里插入图片描述

实例:

db.col.createIndex({‘likes’:1,‘title’:1},{background:true})
在这里插入图片描述

通过创建索引时加background:true的选项,让创建工作在后台执行

mongodb 聚合

aggregate()方法

mongodb中聚合的方法使用aggregate()

db.集合名.aggregate(参数)

事先存好需要用到的数据
在这里插入图片描述

现在根据每个作者写的文章数,使用aggregate()计算:

在这里插入图片描述

类似sql语句:select by_user,count(*) from col1 group by by_user

下表展示了一些聚合的表达式:

在这里插入图片描述

管道的概念

管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令的参数。

MongoDB的聚合管道将MongoDB文档在一个管道处理完毕后将结果传递给下一个管道处理。管道操作是可以重复的。

表达式:处理输入文档并输出。表达式时无状态的,只能用于即使算当前聚合管道的文档,不能处理其他文档。

聚合框架中常用的几个操作:
在这里插入图片描述

管道操作符实例

1、$project实例

db.article.aggregate({$project:{title:1,author:1,}});

这样的话结果中就只含有_id,title和author三个字段了,默认情况下 _id字段是被包含的,如果要想不包含 _id的话可以这样写:

db.article.aggregate({$project:{_id:0,title:1,author:1}});

2、$match实例

db.article.aggregate([{$match:{score:{gt:70,lte:90}}},{$group:{_id:null,count:{$sum:1}}}]);

$match 用于获取分数大于70小于或等于90的记录,然后将符合条件的记录送到下一阶段 $group管道操作符进行处理。

3、$skip实例

db.article.aggregate({$skip:5});

经过$skip管道操作符处理后,前五个文档被’过滤‘掉。

mongodb复制(副本集)

mongodb复制是将数据同步在多个服务器的过程。

复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的高可用性,并可以保证数据的安全性。复制还允许您从硬件故障和服务中断中恢复数据。

什么是复制?
  • 保障数据的安全性

  • 数据高可用性(24*7)

  • 灾难恢复

  • 无需停机维护(如备份,重建索引,压缩)

  • 分布式读取数据

    mongodb复制原理

    docker run -d -v $(pwd)/code:/code -p 9010:9010 --name creditserver

  • 数据高可用性(24*7)

  • 灾难恢复

  • 无需停机维护(如备份,重建索引,压缩)

  • 分布式读取数据

    mongodb复制原理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值