欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2016年10月17日 14:24:03   作者:芒果奶綠不加冰  
本文通過一個實例給大家用MySQL和mongodb分別寫一個查詢,本文圖片并茂給大家介紹的非常詳細,感興趣的朋友參考下吧

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

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

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

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

MySQL的數(shù)據(jù)庫結(jié)構(gòu)如下

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

建完表之后我們來插入一些數(shù)據(jù)

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

我截個圖方便看一下結(jié)構(gòu)

好 接下來我們進入mongodb的準備工作 看一下建立的mongodb的集合里面文檔的結(jié)構(gòu)(基本跟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
}

開始進入正題

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

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過濾 分數(shù)大于0且人名是bob或是jake

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

得到這個結(jié)果

  這個是表哥模塊顯示的結(jié)果:

  這個是文本模塊顯示的結(jié)果:

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

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

那么$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}} 
}
)

得到的結(jié)果就是 分數(shù)大于0且人名是bob或是jake的總分數(shù) 平均分數(shù) 最小分數(shù) 最大分數(shù) 計數(shù)

  結(jié)果的表格模塊顯示:

  結(jié)果的文本模塊顯示:

/* 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簡單的查詢實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • mysql基于正則實現(xiàn)模糊替換字符串的方法分析

    mysql基于正則實現(xiàn)模糊替換字符串的方法分析

    這篇文章主要介紹了mysql基于正則實現(xiàn)模糊替換字符串的方法,結(jié)合具體實例對比分析了使用正則實現(xiàn)mysql字符串替換的注意事項與相關(guān)操作技巧,需要的朋友可以參考下
    2017-03-03
  • mysql grants小記

    mysql grants小記

    grant命令是對mysql數(shù)據(jù)庫進行用戶創(chuàng)建,權(quán)限或其他參數(shù)控制的強大的命令,官網(wǎng)上介紹它就有幾大頁,要用精它恐怕不是一日半早的事情,權(quán)宜根據(jù)心得慢慢領(lǐng)會吧!
    2011-05-05
  • 一文介紹mysql中TINYINT取值范圍

    一文介紹mysql中TINYINT取值范圍

    本文主要介紹了mysql中TINYINT取值范圍,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Mysql 數(shù)字類型轉(zhuǎn)換函數(shù)

    Mysql 數(shù)字類型轉(zhuǎn)換函數(shù)

    Mysql 數(shù)字類型轉(zhuǎn)換函數(shù),有此需要的朋友可以參考下用法。
    2009-08-08
  • 解決MySQL5.1安裝時出現(xiàn)Cannot create windows service for mysql.error:0

    解決MySQL5.1安裝時出現(xiàn)Cannot create windows service for mysql.error

    這篇文章主要介紹了解決MySQL5.1安裝時出現(xiàn)Cannot create windows service for mysql.error:0問題的方法
    2016-06-06
  • MySQL教程DML數(shù)據(jù)操縱語言示例詳解

    MySQL教程DML數(shù)據(jù)操縱語言示例詳解

    這篇文章主要為大家介紹了MySQL教程中DML數(shù)據(jù)操縱語言的示例詳解,要想學好MySQL最重要的是要先學好數(shù)據(jù)操縱語言DML,本文對其進行了全面的講解
    2021-10-10
  • MySql減少內(nèi)存占用的方法詳解

    MySql減少內(nèi)存占用的方法詳解

    這篇文章主要介紹了MySql減少內(nèi)存占用的方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • mysql內(nèi)連接,連續(xù)兩次使用同一張表,自連接方式

    mysql內(nèi)連接,連續(xù)兩次使用同一張表,自連接方式

    這篇文章主要介紹了mysql內(nèi)連接,連續(xù)兩次使用同一張表,自連接方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Navicat如何遠程連接云服務(wù)器數(shù)據(jù)庫

    Navicat如何遠程連接云服務(wù)器數(shù)據(jù)庫

    這篇文章主要介紹了Navicat如何遠程連接云服務(wù)器數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • 解決Navicat for MySQL 連接 MySQL 報2005錯誤的問題

    解決Navicat for MySQL 連接 MySQL 報2005錯誤的問題

    在本地MySQL的服務(wù)啟動后,由于Navicat的一些功能需要聯(lián)網(wǎng)才可以使用,今天重點給大家介紹Navicat for MySQL 連接 MySQL 報2005 -Unknown MySQL server host ‘localhost’(0)錯誤的情況與解決方法,感興趣的朋友一起看看吧
    2021-05-05

最新評論