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介绍,希望能对你有帮助。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站。