mongoldb学习之初

Posted wangaige

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongoldb学习之初相关的知识,希望对你有一定的参考价值。

我是在学完mysql然后简单了解mongodb这种非关系型数据库,发现mongodb似乎更灵活。

首先启动mongodb服务器,界面如下

sudo monogd service start#注意是mongod

技术分享图片

一定是先启动服务器才能进入mongo, 

技术分享图片

出现这样的界面表示连接成功,下面开始说一些mongodb的简单操作

show dbs #查看数据库
‘‘‘下列语句是使用当前数据库,python3可以是之前创建好的数据库,也可以是不存在的数据库,如不存在则此语句表示新建数据库python3,若存在则表示使用当前数据库‘‘‘

use python
show collection #查看当前所选数据库里面的集合,mongodb里面的集合就是mysql里面的表格
技术分享图片
db.dropDatabase() #删除当前数据库,不用制定数据库的名字,当前使用哪个数据库则删除哪一个数据库
db.createCollection("集合名字")#创建集合,例如上图中我是创建了stu和sub两个集合
db.集合名称.insert({name:"老王",age:18})#向集合中添加数据,数据要以json的形式添加,或者说是python当中的字典形式,
db.集合名称.remove({删除数据条件,也是以json形式写},{justone:true})#  其中第二个参数不写时默认删除多条数据,第一个参数无条件,也要写一个空{}放里面,否则报错
db.集合名称.update({修改数据条件,可以不添加,但必须有占位的空集合,否则报错},{想要修改的数据},{multi:true})#第三个参数,可以不写默认为修改一条数据,写上则修改多条
在执行修改语句之前我先接一个没有修改数据的集合内容,方便对比

技术分享图片

此时,第一行数据python对应的count为2,下面执行

db.sub.update({title:‘python‘},{$set:{count:3}})#将title为python,count为2这这条数据修改为count为3,效果如下

技术分享图片

下面说查询语句

db.集合名称.find()#当不传入参数时,查询当前集合中的所有数据,如需查询制定数据,则需要传入查询条件

db.集合名称.findOne() #查询一条数据

查询语句可以与逻辑符号一起使用其中逗号表示逻辑与,就是将多条条件用逗号隔开,系统按逻辑与关系查询,逻辑或用$or,例如db.sub.find({$or:[{count:{$gt:3}},{title:python}]})#此条语句表示查询集合sub中count大于3或者title为python的数据,其中$or作为键,查询条件作为值,多条条件用逗号隔开,系统检测到会将条件按逻辑或查询,并且所有查询条件都要放入数组里面,就是python中的列表里面。其中还有一些逻辑运算符大于等于,小于等于,属于,不属于等这里就不一一列举了。

聚合aggregate

 

db.集合名称.([{管道:{表达式}}])#执行完管道里面的内容将结果送给表达式,表达式执行之后将结果输出给客户端

这里我们介绍一下聚合框架中常用的几个操作:

     

  • $group:将集合中的文档分组,可用于统计结果。
  • $sort:将输入文档排序后输出。
  • $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
  • $match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。
  • $limit:用来限制MongoDB聚合管道返回的文档数。
  • $skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
  • $unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。

技术分享图片 

这个演示当中是以gender作为分组的关键字,然后统计不同gender的数量相当于mysql里面的count

技术分享图片

次演示当中count:-1是指降序排列,1表示升序

技术分享图片

此演示是跳过一条数据,查询两条数据

技术分享图片

此演示为匹配sub集合中的count大于4的数据,匹配出一条

技术分享图片

此语句是投射,想看的字段值设置为1,不想看的字段值设置为0其中投射,投射还包括下列方法,详情参考https://blog.csdn.net/vbirdbest/article/details/77102999

  • 用于包含、排除字段: 设置要查询或者要过滤掉的字段,0: 要过滤掉的字段,不显示,1:需要查询的字段
  • 对字段重命名,
  • 在投射中使用一些【表达式】:数学表达式、日期表达式、字符串表达式、逻辑表达式(比较表达式、布尔表达式、控制语句 



以上是关于mongoldb学习之初的主要内容,如果未能解决你的问题,请参考以下文章

学习之初,认识LINUX

学习之初,认识LINUX

Java学习之初的一些疑问!!!

Python 01 学习之初

深度学习之TensorFlow安装与初体验

学习之初--资源下载系统安装