CREATE TABLE `new_schema`.`demo` (`id` INT NOT NULL,`person` VARCHAR(45) NOT NULL,`score` VARCHAR(45) NOT NULL,PRIMARY KEY (`id`));建完表之后我们来插入一些数据
INSERT INTO `new_schema`.`demo` (`id`, `person`, `score`) VALUES ("1", "bob", "50");INSERT INTO `new_schema`.`demo` (`id`, `person`, `score`) VALUES ("2", "jake", "60");INSERT INTO `new_schema`.`demo` (`id`, `person`, `score`) VALUES ("3", "bob", "100");INSERT INTO `new_schema`.`demo` (`id`, `person`, `score`) VALUES ("6", "jake", "100");INSERT INTO `new_schema`.`demo` (`id`, `person`, `score`) VALUES ("8", "li", "100");我截个图方便看一下结构
好 接下来我们进入mongodb的准备工作 看一下建立的mongodb的集合里面文档的结构(基本跟MySQL一毛一样)在这里我就不写插入文档的具体过程了 (为了便看mongodb的显示我都用两种格式显示:一个是表哥模块显示 一个是文本模块显示)
这个是表格模块显示
这个是文本模块显示
/* 1 */{"_id" : ObjectId("58043fa8e9a7804c05031e17"),"person" : "bob","sorce" : 50}/* 2 */{"_id" : ObjectId("58043fa8e9a7804c05031e18"),"person" : "bob","sorce" : 100}/* 3 */{"_id" : ObjectId("58043fa8e9a7804c05031e19"),"person" : "jake","sorce" : 60}/* 4 */{"_id" : ObjectId("58043fa8e9a7804c05031e1a"),"person" : "jake","sorce" : 100}/* 5 */{"_id" : ObjectId("58043fa8e9a7804c05031e1b"),"person" : "li","sorce" : 100}开始进入正题
SELECT person, SUM(score), AVG(score), MIN(score), MAX(score), COUNT(*) FROM demo WHERE score > 0 AND person IN("bob","jake") GROUP BY person;下面开始用Mongo写出这个查询
db.demo.aggregate({"$match":{"$and":[{"sorce":{"$gt":0}},{"person":{"$in":["bob","jake"]}}]}}得到这个结果
这个是文本模块显示的结果:
/* 1 */{"_id" : ObjectId("58043fa8e9a7804c05031e17"),"person" : "bob","sorce" : 50}/* 2 */{"_id" : ObjectId("58043fa8e9a7804c05031e18"),"person" : "bob","sorce" : 100}/* 3 */{"_id" : ObjectId("58043fa8e9a7804c05031e19"),"person" : "jake","sorce" : 60}/* 4 */{"_id" : ObjectId("58043fa8e9a7804c05031e1a"),"person" : "jake","sorce" : 100}然后想要分组并且显示最大 最小 总计 平均值 和计数值
db.demo.aggregate({"$match":{"$and":[{"sorce":{"$gt":0}},{"person":{"$in":["bob","jake"]}}]}},{"$group":{"_id":"$person","sumSorce":{"$sum":"$sorce"},"avgSorce":{"$avg":"$sorce"},"lowsetSorce":{"$min":"$sorce"},"highestSorce":{"$max":"$sorce"},"count":{"$sum":1}} })得到的结果就是 分数大于0且人名是bob或是jake的总分数 平均分数 最小分数 最大分数 计数
结果的文本模块显示:
/* 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,"highestSorce" : 100,"count" : 2.0}以上所述是小编给大家介绍的MySQL与Mongo简单的查询实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!