加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql必读MySQL与Mongo简单的查询实例代码

发布时间:2020-12-12 02:58:38 所属栏目:MySql教程 来源:网络整理
导读:《Mysql必读MySQL与Mongo简单的查询实例代码》要点: 本文介绍了Mysql必读MySQL与Mongo简单的查询实例代码,希望对您有用。如果有疑问,可以联系我们。 MYSQL教程 首先在这里我就不说关系型数据库与非关系型数据库之间的区别了(百度上有很多)直接切入主题 MY

《Mysql必读MySQL与Mongo简单的查询实例代码》要点:
本文介绍了Mysql必读MySQL与Mongo简单的查询实例代码,希望对您有用。如果有疑问,可以联系我们。

MYSQL教程首先在这里我就不说关系型数据库与非关系型数据库之间的区别了(百度上有很多)直接切入主题

MYSQL教程我想查询的内容是这样的:分数大于0且人名是bob或是jake的总分数 平均分数 最小分数 最大分数 计数

MYSQL教程举这个实例来试试用MySQL和mongodb分别写一个查询

MYSQL教程首先我们先做一些准备工作

MYSQL教程MySQL的数据库结构如下

MYSQL教程
CREATE TABLE `new_schema`.`demo` (
`id` INT NOT NULL,`person` VARCHAR(45) NOT NULL,`score` VARCHAR(45) NOT NULL,PRIMARY KEY (`id`));

MYSQL教程建完表之后我们来插入一些数据

MYSQL教程
INSERT INTO `new_schema`.`demo` (`id`,`person`,`score`) VALUES ('1','bob','50');
INSERT INTO `new_schema`.`demo` (`id`,`score`) VALUES ('2','jake','60');
INSERT INTO `new_schema`.`demo` (`id`,`score`) VALUES ('3','100');
INSERT INTO `new_schema`.`demo` (`id`,`score`) VALUES ('6',`score`) VALUES ('8','li','100');

MYSQL教程我截个图方便看一下结构

MYSQL教程

MYSQL教程好 接下来我们进入mongodb的准备工作 看一下建立的mongodb的集合里面文档的结构(基本跟MySQL一毛一样)在这里我就不写插入文档的具体过程了 (为了便看mongodb的显示我都用两种格式显示:一个是表哥模块显示 一个是文本模块显示)

MYSQL教程  这个是表格模块显示

MYSQL教程

MYSQL教程  这个是文本模块显示

MYSQL教程
/* 1 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e17"),"person" : "bob","sorce" : 50
}
/* 2 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e18"),"sorce" : 100
}
/* 3 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e19"),"person" : "jake","sorce" : 60
}
/* 4 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e1a"),"sorce" : 100
}
/* 5 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e1b"),"person" : "li","sorce" : 100
}

MYSQL教程开始进入正题

MYSQL教程现在我想查的MySQL语句是这样的(分数大于0且人名是bob或是jake的总分数 平均分数 最小分数 最大分数 计数)

MYSQL教程
SELECT person,SUM(score),AVG(score),MIN(score),MAX(score),COUNT(*) 
FROM demo 
WHERE score > 0 AND person IN('bob','jake') 
GROUP BY person;

MYSQL教程下面开始用Mongo写出这个查询

MYSQL教程  首先想到的是聚合框架

MYSQL教程先用$match过滤 分数大于0且人名是bob或是jake

MYSQL教程
db.demo.aggregate(
{
"$match":{
"$and":[
{"sorce":{"$gt":0}},{"person":{"$in":["bob","jake"]}}
]
}
}

MYSQL教程得到这个结果

MYSQL教程  这个是表哥模块显示的结果:

MYSQL教程

MYSQL教程  这个是文本模块显示的结果:

MYSQL教程
/* 1 */
{
"_id" : ObjectId("58043fa8e9a7804c05031e17"),"sorce" : 100
}

MYSQL教程然后想要分组并且显示最大 最小 总计 平均值 和计数值

MYSQL教程那么$group派上用场了:

MYSQL教程
db.demo.aggregate(
{
"$match":{
"$and":[
{"sorce":{"$gt":0}},"jake"]}}
]
}
},{
"$group":{"_id":"$person","sumSorce":{"$sum":"$sorce"},"avgSorce":{"$avg":"$sorce"},"lowsetSorce":{"$min":"$sorce"},"highestSorce":{"$max":"$sorce"},"count":{"$sum":1}} 
}
)

MYSQL教程得到的结果就是 分数大于0且人名是bob或是jake的总分数 平均分数 最小分数 最大分数 计数

MYSQL教程  结果的表格模块显示:

MYSQL教程

MYSQL教程  结果的文本模块显示:

MYSQL教程
/* 1 */
{
"_id" : "bob","sumSorce" : 150,"avgSorce" : 75.0,"lowsetSorce" : 50,"highestSorce" : 100,"count" : 2.0
}
/* 2 */
{
"_id" : "jake","sumSorce" : 160,"avgSorce" : 80.0,"lowsetSorce" : 60,"count" : 2.0
}

MYSQL教程以上所述是小编给大家介绍的MySQL与Mongo简单的查询实例代码,希望对大家有所赞助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对编程之家PHP网站的支持!

编程之家培训学院每天发布《Mysql必读MySQL与Mongo简单的查询实例代码》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读