<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg>
讯享网
语法:
use DATABASE NAME
use:用于切换/创建数据库,若不存在则创建,否则切换到指定数据库。
DATABASE_NAME:数据库名称。
执行use articledb命令,创建数据库articledb。
语法: 查看全部数据库
show dbs
或者查看当前数据库,需要先切换到指定数据库
db
语法
db.dropDatabase()
db:表示当前数据库对象。
dropDatabase():用于删除当前数据库的方法。
删除当前数据库,执行命令前应使用use命令切换到要删除的数据库,为了防止误删可执行命令db验证当前数据库是否为指定删除的数据库。
语法
显示创建
db.createCollection(COLLECTION NAME, [OPTIONS])
隐式创建
db.COLLECTION NAME.insert(DOCUMENT)
- db:表示当前数据库对象。
- createCollection():创建集合方法。
- DOCUMENT表示文档。
- COLLECTION_NAME表示集合名称。
- OPTIONS表示集合配置。
- insert():向集合中插入文档的方法。
语法
db.COLLECTION NAME.drop()
- db:表示当前数据库对象。
- COLLECTION_NAME:表示集合名称。
- drop():删除集合方法。
语法(单文档插入)
db.COLLECTION NAME.insert(document)
或者
db.COLLECTION NAME.save(document)
语法(多文档插入)
db.COLLECTION NAME.insertMany([document1,document2,…])
- db:当前数据库对象
- COLLECTION_NAME: 当前集合对象。
- insert() 和save():插入单文档方法。
- insertMany():插入多文档方法。
insert()和save()方法的区别在于,若使用insert()方法插入文档时,集合中已存在该文档,则会报错。若使用save()方法插入文档时,集合中已存在该文档,则会覆盖。
语法
db.COLLECTION NAME.update(criteria,objNew,upsert, multi)
- db:当前数据库对象。
- COLLECTION_NAME: 当前集合对象。
- update():更新文档方法。
- criteria: 更新的查询条件,类似sql中的where。
- objNew:新的对象和操作符,类似sql中的set。
- upsert:不存在更新对象时,是否插入,默认为false
- multi:默认为false,只更新查找到的第一个文档,反之更新所有。
db.集合名.update(条件, 新数据){修改器: {键:值}}

语法(删除单个)


删除全部文档
db.COLLECTION NAME.remove({})
- db:当前数据库对象。
- COLLECTION_NAME:当前集合对象。
- remove():删除文档方法。
- query:删除文档的条件,可选参数。
- justOne:的boolean为true或1时,表示只删除查询出的第一个文档。
- writeConcern: 表示抛出异常级别。
查询所有文档语法
db.COLLECTION NAME.find()
查询所有文档,以易读的方式展示
db.COLLECTION NAME.find().pretty()
- db:当前数据库对象
- COLLECTION_NAME:当前集合对象
- find():查询所有文档方法
- pretty():格式化查询返回结果
聚合管道操作是将文档在一个管道处理完毕后,把处理的结果传递给下一个管道进行再次处理。聚合管道是使用不同的管道阶段操作器进行不同聚合操作,管道阶段操作器也可称为管道操作符,常见管道操作符如下表。


其中“[]”不是必须的,可以省略!!!
管道阶段操作器的值被称为管道表达式,并且每个管道表达式都是一个文档结构,由字段名称、字段值和管道表达式组成。常见的管道表达式如下表。

练习1:统计运动鞋和电子通讯的价格price
db.c5.aggregate([
{
type“,
rs: {price”}
}
}
])
//对于符号
//rs为新增的列,存放统计数据,男女生的总年龄计算使用\(sum<br /> // id和rs都可以加上双引号,没有差别</p> </blockquote> <p><img src="https://i-blog.csdnimg.cn/blog_migrate/03da6c14f67568b9bb017c5b75294dd3.png" alt="在这里插入图片描述" /><br /> 练习2 统计运动鞋和电子通讯的个数</p> <blockquote> <p>db.c5.aggregate([<br /> {<br /> type",<br /> "<br /> gs<br /> "<br /> :<br /> {sum:1代替(匹配多少次,就多少个1相加),这里展示 id和gs加上双引<br /> 号</p> </blockquote> <p><img src="https://i-blog.csdnimg.cn/blog_migrate/58ed65de5380d304ebe54f8.png" alt="在这里插入图片描述" /><br /> 练习3 求商品总数和平均价格</p> <blockquote> <p>db.c5.aggregate([<br /> {<br /> sum:1},<br /> total price avg:{price"}<br /> }<br /> }<br /> ])</p> </blockquote> <p>这里求的是总人数,管道依然可以选择分组,但是没有分组字段,所以_id为null<br /> total_num为新增的列,存放总数<br /> total_price_avg为新增的列,存放平均价格<br /> <img src="https://i-blog.csdnimg.cn/blog_migrate/da9c7d6ab7e723a09840ce5e73cf19bd.png" alt="在这里插入图片描述" /><br /> 练习4:使用\)min表达式,将集合陈中的文档按类型type进行分组,并计算各个分组中价格price最小值,具体命令如下。db.c5.aggregate([{type“,“price”:{price”}}}]).pretty()
练习5 使用$max表达式,将集合c5中的文档按类型type进行分组,并计算各个分组中价格price最大
值,具体命令如下。db.c5.aggregate([{type“,“price”:{price”}}}]).pretty()



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/152560.html