MySQL和Mongo简单的查询实例代码

首先,我没有说关系数据库和非关系数据库(许多百度)直接切入主题的区别。

我想问的内容是:分数大于0,人的名字是鲍伯或杰克,分数的平均分数的最大分数被计算在内。

拿这个例子来尝试使用MySQL和MongoDB查询分别

首先,我们先做一些准备。

MySQL的数据库结构如下


创建表(` new_schema ` ` `演示。
int不是空的,
`人` varchar(45)不为空,
`评分` varchar(45)不为空,
主键(id);


在构建表之后,我们将插入一些数据


插入` new_schema `。`演示`(` ID `,`人`,`评分值`)(‘1',鲍勃','50 ');
插入` new_schema `。`演示`(` ID `,`人`,`评分`)值(2,'jake,60);
插入` new_schema `。`演示`(` ID `,`人`,`评分`)值(3',鲍勃,100);
插入` new_schema `。`演示`(` ID `,`人`,`评分`)值(6,'jake,100);
插入` new_schema `。`演示`(` ID `,`人`,`评分`)值(8,李,100);


我把地图剪下来看结构。


接下来我们进入MongoDB看集合中的MongoDB文档结构(MySQL 10分)具体过程我就不写文档插入这里(为了看到MongoDB显示我有两种格式:一个是我的表弟是一个文本模块,显示模块的显示)

这是一个表模块显示。


这是一个文本模块显示。


1 **
{
_id :ObjectId(58043fa8e9a7804c05031e17 ),
人:鲍勃
源:50
}
2 **
{
_id :ObjectId(58043fa8e9a7804c05031e18 ),
人:鲍勃
源:100
}
3 **
{
_id :ObjectId(58043fa8e9a7804c05031e19 ),
人:杰克
源:60
}
4 **
{
_id :ObjectId(58043fa8e9a7804c05031e1a ),
人:杰克
源:100
}
5 **
{
_id :ObjectId(58043fa8e9a7804c05031e1b ),
人:李
源:100
}


开始深入讨论这个话题

现在我要检查MySQL语句(得分大于0,而此人的名字是卫国明或鲍勃的总分数的最小分数)。


选择人,和(得分),平均(得分),分钟(得分),马克斯(得分),计数(*)
从演示
其中0人得分>(鲍勃,'jake)
按个人分组;


下面开始在Mongo写这个查询

首先要考虑的是聚合框架。

首先,使用匹配过滤得分超过0,此人的名字是鲍伯或卫国明。


Db.demo.aggregate(
{
$:{
$和:{
{源:{$ gt ):0 } },
{
}
}
}


得到这样的结果

这是堂兄弟模块显示的结果:


这是文本模块显示的结果:


1 **
{
_id :ObjectId(58043fa8e9a7804c05031e17 ),
人:鲍勃
源:50
}
2 **
{
_id :ObjectId(58043fa8e9a7804c05031e18 ),
人:鲍勃
源:100
}
3 **
{
_id :ObjectId(58043fa8e9a7804c05031e19 ),
人:杰克
源:60
}
4 **
{
_id :ObjectId(58043fa8e9a7804c05031e1a ),
人:杰克
源:100
}


然后,您需要分组并显示最大和最小总平均值和计数值。

所以$组正在使用中:


Db.demo.aggregate(
{
$:{
$和:{
{源:{$ gt ):0 } },
{
}
}
},
{
美元集团:{_id ):为人
sumsorce :{元和:达源},
avgsorce :{$ AVG $源},
lowsetsorce :{为民:达源},
highestsorce :{$最大:为源},
计数:{$ :1 } }
}



结果是分数大于0,人的名字是鲍伯或杰克,分数的平均分数的最大分数被计数。

表单模块的结果显示:


结果文本模块显示:


1 **
{
_id 鲍勃
sumsorce :150,
avgsorce :75,
lowsetsorce :50,
highestsorce :100,
计数:2
}
2 **
{
_id 杰克
sumsorce :160,
avgsorce :80,
LowsetSorce: 60,
highestsorce :100,
计数:2
}


以上是一个简单的查询示例代码MySQL和Mongo经Xiaobi介绍,希望能对你有帮助。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站。