[教程]MongoDB 从入门到进阶 (aggregation数据库状态)
下载地址: GitHub:https://github.com/magicdict/MagicMongoDBTool 在开始介绍这节之前,我来说说我开发这个工具的意义。 我不敢保证以后MongoDB可以大红大紫,也无法保证MongoDB以后会分享很多很多市场份额。 现在开发这个东西,一年后可能Mongo倒闭了,这
下载地址:
GitHub: https://github.com/magicdict/MagicMongoDBTool
在开始介绍这节之前,我来说说我开发这个工具的意义。
我不敢保证以后MongoDB可以大红大紫,也无法保证MongoDB以后会分享很多很多市场份额。
现在开发这个东西,一年后可能Mongo倒闭了,这个工具就是一个垃圾。一年后,Mongo修成正果,香港服务器,这个工具就是香饽饽。
等所有人都觉得这个东西会火,你才去关注,开发工具,就晚了。花点业余时间,开发Mongo工具的同时,香港服务器租用,最主要去学习一下大数据的一些思想,例如副本,分片概念。
还有就是阶层数据库的一些实现的方法。当然,由于3年前才开始从VB.NET转C#的,也希望通过多些编码将C#用身体记住。
[aggregation Framework]
例子1
aggregation Framework 是MongoDB的一个功能强大的统计框架,这里就演示一下这个框架的使用方法。
首先,我们新建一个aggregation数据集。然后再按照官方文档的样子,使用MongoCola插入一个文档。(将下面这段JSON直接粘贴到新建文档的窗体里面就可以了)
{ title : "this is my title" , author : "bob" , posted : new Date() , pageViews : 5 , tags : [ "fun" , "good" , "fun" ] , comments : [ { author :"joe" , text : "this is cool" } , { author :"sam" , text : "this is bad" } ], other : { foo : 5 } }
1.$project
这个操作符号,可以用来做Select 的操作。用来指定显示的列。
{ $project : { title : 1 , author : 1 }}
这里表示我们只是需要title和author列的信息。
这里的参数1:表示 0:非表示。 _id是一个默认的表示项目,我们可以通过将_id设置为0,告诉系统不表示这个项目。
{ $project : { _id : 0 , title : 1 , author : 1 }}
当然,你也可以新建一个字段,例如一个doctoredPageViews字段,这个字段是在原有字段的基础上加工而成的值。
就如 SQL中的,Select (pageViews + 10 As doctoredPageViews) from table
{ $project : { title : 1, doctoredPageViews : { $add:["$pageViews", 10] } }}
当然你也可以重新命名列名
{ $project : { title : 1 , page_views : "$pageViews" , bar : "$other.foo" }}
最后你也可以通过Project操作符,来构建你想要的文档结果。下面这个例子里面的Status就是一个新建的子文档
{ $project : { title : 1 , stats : { pv : "$pageViews", foo : "$other.foo", dpv : { $add:["$pageViews", 10] } } }}
{ $match : { author : "bob" } }
这个Aggregate框架里面的各种操作符号是可以任意组合的。我们可以既有match操作,又有project操作。
这里我们用工具将两种操作的条件分别加上。
注意:这里我们已经添加了2个条件了。第一个是match,第二个是project。
例子2
下面是例子的测试数据
{ "_id" : "1", "User" : "Tom", "Country" : "Finland", "Count" : 1 } { "_id" : "2", "User" : "Tom", "Country" : "Finland", "Count" : 3 } { "_id" : "3", "User" : "Tom", "Country" : "Finland", "Count" : 2 } { "_id" : "4", "User" : "Mary", "Country" : "Sweden", "Count" : 1 } { "_id" : "5", "User" : "Mary", "Country" : "Sweden", "Count" : 7 }
我们找一下是User是Tom,Count >= 2 的记录
{ $match : { User: "Tom", Count:{"$gte": 2} } }
关于操作符号:
3 $Group
我们对于User进行Group操作,并且对于Count进行合计
注意,这里必须要有一个_id字段来表示Group的条件
{ $group : { _id : { "MyUser": "$User" } TotalCount : { $sum : "$Count" } } }
结果就是Mary的合计值是8,Tom则是6.
MyUser SUM(Count) AS TotalCount
我们再次添加一条记录

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

2025年全球数字虚拟币交易平台竞争激烈,本文根据交易量、安全性、用户体验等指标,权威发布2025年全球十大数字虚拟币交易平台排行榜。OKX凭借强大的技术实力和全球化运营策略居首,Binance以高流动性和低费用紧随其后。Gate.io、Coinbase、Kraken等平台凭借各自优势稳居前列。榜单涵盖Huobi、KuCoin、Bitfinex、Crypto.com和Gemini等交易平台,各有特色,但投资需谨慎。选择平台需考虑安全性、流动性、费用、用户体验、币种选择及监管合规性等因素,理性投资

十大数字货币交易平台:1. OKX,2. Binance,3. Gate.io,4. Huobi Global,5. Kraken,6. Coinbase,7. KuCoin,8. Bitfinex,9. Crypto.com,10. Gemini,这些交易所各具特色,用户可根据安全性、费用、币种选择、用户界面和客户支持等因素选择适合自己的平台。

虚拟货币十大交易平台排行榜(2025年最新): 币安:全球龙头,高流动性,监管受关注。 OKX:庞大用户基数,支持多种币种,提供杠杆交易。 Gate.io:资深交易所,多种法币支付方式,提供多种交易对和投资产品。 Bitget:衍生品交易所,高流动性,低费用。 火币:老牌交易所,支持多种币种和交易对。 Coinbase:美国知名交易所,受监管严格。 Phemex等等。

火币到币安转账指南:安全便捷地转移您的加密资产许多投资者同时使用火币和币安这两个知名的加密货币交易平台。本文将指导您如何安全地将火币(HTX)上的加密资产,例如TRUMP和USDT,转移到币安(Binance)平台。币安以其高安全性、丰富的币种和交易对以及全球领先的交易量而备受青睐。币安交易所的优势:全球第一的交易量,占据全球市场50%;储备资产透明,主要为比特币、以太坊和USDT等主流稳定币;已有效规避美国SEC的潜在风险,是目前最稳定可靠的交易所之一。本教程将以TRUMP和USDT为例,演

本文介绍如何在Debian系统上构建高可用性的MongoDB数据库。我们将探讨多种方法,确保数据安全和服务持续运行。关键策略:副本集(ReplicaSet):利用副本集实现数据冗余和自动故障转移。当主节点出现故障时,副本集会自动选举新的主节点,保证服务的持续可用性。数据备份与恢复:定期使用mongodump命令进行数据库备份,并制定有效的恢复策略,以应对数据丢失风险。监控与报警:部署监控工具(如Prometheus、Grafana)实时监控MongoDB的运行状态,并

本文推荐十个数字货币交易App:1. OKX;2. Binance;3. Gate.io;4. Huobi Global;5. Kraken;6. Coinbase;7. KuCoin;8. Crypto.com;9. Bitfinex;10. Poloniex。选择平台需考虑安全性、流动性、交易费用、币种选择、用户界面、客服支持及法规合规性等因素,谨慎评估风险,切勿盲目跟风。

本文介绍如何在Debian系统上配置MongoDB实现自动扩容,主要步骤包括MongoDB副本集的设置和磁盘空间监控。一、MongoDB安装首先,确保已在Debian系统上安装MongoDB。使用以下命令安装:sudoaptupdatesudoaptinstall-ymongodb-org二、配置MongoDB副本集MongoDB副本集确保高可用性和数据冗余,是实现自动扩容的基础。启动MongoDB服务:sudosystemctlstartmongodsudosys

本文提供Binance、OKX、Gate.io、Huobi Global(火币)、Coinbase、KuCoin(库币)、Kraken和Bitfinex等主流数字货币交易平台的安卓和苹果手机APP下载方法。无论是安卓用户还是苹果用户,都能轻松找到对应平台的官方APP下载链接,并按照步骤完成安装。 文章详细指导了在各自官网或应用商店搜索下载,并针对安卓系统安装APK文件的特殊步骤做了说明,方便用户快速便捷地下载使用。
