国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL與Mongo簡單的查詢實例代碼

2024-07-24 13:10:53
字體:
來源:轉載
供稿:網友

首先在這里我就不說關系型數據庫與非關系型數據庫之間的區別了(百度上有很多)直接切入主題

我想查詢的內容是這樣的:分數大于0且人名是bob或是jake的總分數 平均分數 最小分數 最大分數 計數

舉這個實例來試試用MySQL和mongodb分別寫一個查詢

首先我們先做一些準備工作

MySQL的數據庫結構如下

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');

我截個圖方便看一下結構

mongo,mysql

好 接下來我們進入mongodb的準備工作 看一下建立的mongodb的集合里面文檔的結構(基本跟MySQL一毛一樣)在這里我就不寫插入文檔的具體過程了 (為了便看mongodb的顯示我都用兩種格式顯示:一個是表哥模塊顯示 一個是文本模塊顯示)

  這個是表格模塊顯示

mongo,mysql

  這個是文本模塊顯示

/* 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}

開始進入正題

現在我想查的MySQL語句是這樣的(分數大于0且人名是bob或是jake的總分數 平均分數 最小分數 最大分數 計數)

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寫出這個查詢

  首先想到的是聚合框架

先用$match過濾 分數大于0且人名是bob或是jake

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

得到這個結果

  這個是表哥模塊顯示的結果:

mongo,mysql

  這個是文本模塊顯示的結果:

/* 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}

然后想要分組并且顯示最大 最小 總計 平均值 和計數值

那么$group派上用場了:

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的總分數 平均分數 最小分數 最大分數 計數

  結果的表格模塊顯示:

mongo,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,"highestSorce" : 100,"count" : 2.0}

以上所述是小編給大家介紹的MySQL與Mongo簡單的查詢實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠安县| 沈阳市| 宜宾市| 新野县| 石棉县| 烟台市| 大兴区| 安达市| 达州市| 汨罗市| 永定县| 罗田县| 巩义市| 泉州市| 财经| 浪卡子县| 陆河县| 德庆县| 宝坻区| 顺昌县| 临夏市| 石屏县| 金寨县| 凤山市| 耒阳市| 玛多县| 辽中县| 安庆市| 思茅市| 工布江达县| 蒙山县| 黄平县| 丹阳市| 平定县| 松江区| 宜都市| 辽宁省| 科技| 蛟河市| 明水县| 尚志市|