在讲解聚合管道(Aggregation Pipeline)之前,我们先介绍一下 MongoDB 的聚合功能,聚合操作主要用于对数据的批量处理,往往将记录按条件分组以后,然后再进行一系列操作,例如,求最大值.最小值.平均值,求和等操作.聚合操作还能够对记录进行复杂的操作,主要用于数理统计和数据挖掘.在 MongoDB 中,聚合操作的输入是集合中的文档,输出可以是一个文档,也可以是多条文档. MongoDB 提供了非常强大的聚合操作,有三种方式: 聚合管道(Aggregation Pipeline)…
1.集合操作 1.1.创建集合 MongoDB 用 db.createCollection(name, options) 方法创建集合. 格式 db.createCollection(name, options) 其中,name 是集合名称,是一个字符串:options 是可选项,是一个文档,指定内存大小和索引等选项,具体参数说明如下表: 字段 类型 说明 capped 布尔         (可选)如果为 true,表示为固定集合.固定集合是指具有固定存储空间的集合.当该值为 true 时,必…
查询文档 查询文档可以用 find() 方法查询全部文档,可以用 findOne() 查询第一个文档,当然还可以根据 条件操作符 和 $type操作符 查询满足条件的文档. find() 和 findOne() MongoDB 用 find() 查询指定集合的全部文档 格式 db.COLLECTION_NAME.find() 范例 > db.user.find() { "_id" : ObjectId("58e1d2f0bb1bbc3245fa754b"),…
上一篇提到的 find() 的方法,细心的伙伴会发现查询的结果都是显示了集合中全部的字段,实际应用中,显然是不够用的.那么有没有办法指定特定的字段显示出文档呢?答案是肯定的,MongoDB 中用映射实现这种功能. 1.映射 MongoDB 中限制字段的显示,可以利用 0 或 1 来设置字段列表.1 用于显示字段,0 用于隐藏字段. 格式 db.COLLECTION_NAME.find({},{KEY:1}) 范例 查询文档时,只显示文档中的 name.首先查询出 user 集合中的所有文档,然后…
使用索引可以大大提高文档的查询效率.如果没有索引,会遍历集合中所有文档,才能找到匹配查询语句的文档.这样遍历集合中整个文档的方式是非常耗时的,特别是处理大数据时,耗时几十秒甚至几分钟都是有可能的. 创建索引 MongoDB 中,使用 ensureIndex() 方法创建索引. 格式 db.COLLECTION_NAME.ensureIndex({KEY:1}) 其中,KEY表示要创建索引的字段名称,1 表示按升序排列字段值.-1 表示按降序排列. 范例 1.给 user 集合中 name 字段添…
为什么用复制 为什么要使用复制呢?如果我们的数据库只存在于一台服务器,若这台服务器宕机了,那对于我们数据将会是灾难,当然这只是其中一个原因,若数据量非常大,读写操作势必会影响数据库的性能,这时候复制就显得相当重要了,因为 MongoDB 可以通过复制,实现读写分离. 复制是一种在多个服务器上同步数据的过程.通过在不同的数据库服务器上实现多个数据副本.总之,复制可以使你免受硬件故障与服务中断的影响,及时恢复数据.由于数据有多个副本,所以可以将其中一个副本用于灾难恢复.报告或备份. 复制的作用 保证…
最近对 MongoDB 产生兴趣,在网上找的大部分都是 2.X 版本,由于 2.X 与 3.X 差别还是很大的,所以自己参考官网,写了本系列.MongoDB 的知识还是很多的,本系列会持续更新,本文作为目录篇,方便阅读,有问题大家一块交流哈.多谢大家关注,转载请注明出处,谢谢! MongoDB基础教程系列--第一篇 进入MongoDB世界 MongoDB基础教程系列--第二篇 MongoDB基本操作(一) MongoDB基础教程系列--第三篇 MongoDB基本操作(二) MongoDB基础教程…
最近对 MongoDB 产生兴趣,在网上找的大部分都是 2.X 版本,由于 2.X 与 3.X 差别还是很大的,所以自己参考官网,写了本系列.MongoDB 的知识还是很多的,本系列会持续更新,本文作为目录篇,方便阅读,有问题大家一块交流哈.多谢大家关注,转载请注明出处,谢谢! MongoDB基础教程系列--第一篇 进入MongoDB世界 MongoDB基础教程系列--第二篇 MongoDB基本操作(一) MongoDB基础教程系列--第三篇 MongoDB基本操作(二) MongoDB基础教程…
1.什么是MongoDB MongoDB是跨平台的.一个基于分布式文件存储的数据库.由C++语言编写.用它创建的数据库具备性能高.可用性强.易于扩展等特点.MongoDB将数据存储为一个文档,数据结构由键值(key:value)对组成.MongoDB文档类似于 JSON 对象.字段值可以包含字符串.数字.数组.当然也可以是另一个文档.文档是可以嵌套的. 2.概念 在MongoDB中基本的概念是文档.集合.数据库,下表可以帮助更容易的理解MongoDB的概念: 关系型数据库 MongoDB 数据库…
1.安装环境 在官网上下载MongoDB的最新版本,根据自身Windows版本下载正确的MongoDB版本.下载后,双击32位或者64位.msi文件,按操作提示安装就可以了. 说明: 32 位版本的 MongoDB 只支持 2G 以下的数据库,只适用于测试及评估. 在 MongoDB 2.2 版本后已经不再支持 Windows XP 系统.最新版本也已经没有了 32 位系统的安装文件. 创建数据目录 安装完MongoDB以后,我们需要创建数据目录.注意,数据目录应该放在根目录下(如: C:\ 或…
1.分片介绍 分片(sharding)是将数据拆分,将其分散存到不同机器上的过程.MongoDB 支持自动分片,可以使数据库架构对应用程序不可见.对于应用程序来说,好像始终在使用一个单机的 MongoDB 服务器一样,另一方面,MongoDB 自动处理数据在分片上的分布,也更容易添加和删除分片. 请记住:复制是让多台服务器拥有同样的数据副本,每一台服务器都是其他服务器的镜像,而每一个分片都与其他分片拥有不同的数据子集. 通常,分片可以用来: 增加可用的内存 增加可用的磁盘空间 减轻单台服务器的负…
MongoDB基础教程 =======================================================================================================1.MongoDB 创建数据库> use runoob;> db.runoob.insert({"name":"菜鸟教程"});> show dbs; ===================================…
RabbitMQ基础教程之基本使用篇 最近因为工作原因使用到RabbitMQ,之前也接触过其他的mq消息中间件,从实际使用感觉来看,却不太一样,正好趁着周末,可以好好看一下RabbitMQ的相关知识点:希望可以通过一些学习,可以搞清楚以下几点 基础环境搭建 可以怎么使用 实现原理是怎样的 实际工程中的使用(比如结合SpringBoot可以怎么玩) 相关博文,欢迎查看: <RabbitMq基础教程之安装与测试> <RabbitMq基础教程之基本概念> I. 前提准备 在开始之前,先得…
Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 在现在的工作及开发当中,Python的使用越来越广泛,为了方便大家的学习,Linux大学 特推出了 <Python基础教程系列>. 本系列教程适合Python小白阅读,是Python入门的必备教程! 本系列教程共包含如下文章: Python基础教程系列之–Python 简介 Python基础教程系列之–Python环境搭建 Python基础教程系列之–Python 基础语法 Python基础教程系列之–Python…
RabbitMQ基础教程之使用进阶篇 相关博文,推荐查看: RabbitMq基础教程之安装与测试 RabbitMq基础教程之基本概念 RabbitMQ基础教程之基本使用篇 I. 背景 前一篇基本使用篇的博文中,介绍了rabbitmq的三种使用姿势,可以知道如何向RabbitMQ发送消息以及如何消费,但遗留下几个疑问,本篇则主要希望弄清楚这几点 Exchange声明的问题(是否必须声明,如果不声明会怎样) Exchange声明的几个参数(durable, autoDelete)有啥区别 当没有队列…
Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 在现在的工作及开发当中,Python的使用越来越广泛,为了方便大家的学习,Linux大学 特推出了 <Python基础教程系列>. 本系列教程适合Python小白阅读,是Python入门的必备教程! 本系列教程共包含如下文章: Python基础教程系列之–Python 简介 Python基础教程系列之–Python环境搭建 Python基础教程系列之–Python 基础语法 Python基础教程系列之–Python…
MongoDB 下载安装 简易安装 # redhat, centOS sudo yum install -y mongodb # debian, ubuntu sudo apt install -y mongodb 如果简易安装失败,各种操作系统具体的安装请移步官方文档: https://docs.mongodb.com/manual/administration/install-on-linux/ 修改配置文件 vi /etc/mongod.conf bind_ip默认是127.0.0.1,只…
最近两天在学习MongoDB,强大的文档数据库.给我最大的感觉就是相比于SQL或者MSQ等传统的关系型数据库,在使用和配置上真的是简化了很多.无论是在集群的配置还是故障转移方面,都省去了许多繁琐的步骤,但最重要是的什么呢?是效率,它的出现解决了传统关系型数据库的IO瓶颈,极大的提高了工作效率,适合海量数据的查询. 当然,这些老生常谈的话可能你已经听了很多,耳朵都磨出了茧子,废话少说,整点干货. 博客园里关于MongoDB的文章搜一下会出来很多,但是大多都是关于如果安装或者复制集.故障转移等,对于…
目录 1. 使用场景 2. 基于消息头的路由 2.1 使用JSON提交订单的消息 2.2 使用XML提交订单的消息 2.3 使用Choice组件判断订单格式 3. 基于消息内容的路由 4. 其他控制流向的组件 本篇主要介绍在Mule ESB中控制消息的流向.控制消息的流向有很多不同的场景,数据的路由,数据的拆分和组合,数据的排序,数据的分发等.数据路由是ESB平台上最基本,也是最重要的功能之一,完整的ESB平台都会有相对应的功能.ESB基本的功能可分成消息路由,消息传输和消息转换等,后续几篇Mu…
MongoDB 简介 1. 易于使用:没有固定的模式,根据需要添加和删除字段更加容易 2. 易于扩展:MongoDB的设计采用横向扩展.面向文档的数据模型使它能很容易的再多台服务器之间进行分割.自动处理跨越集群的数据和负载,自动重新分配文档. 以及将用户请求路由到正确的机器上. 3. 丰富的功能:索引,聚合,特殊的集合类型(过期,固定大小的集合),文件存储. 4. 卓越的性能 MongoDB基础知识 1. 文档:文档就是键值对的一个有序集.  1). MongoDB不但区分类型,而且区分大小写.…
本篇继续前两篇内容,跟大家介绍一下Path类以及FileSystemInfo这个类的主要方法和属性. 上文提到,在<C# 基础知识系列-IO篇>之文件相关的内容完结之后,会带领大家开发一个小工具-快速检索文件所在目录. 1.3. Path Path的中文名称有路径的意思,所以Path类就是路径类,C#把Path设置为工具类,路径的实例被区分为文件和目录了.以下是它的定义: public static class Path 路径是描述文件和目录的位置的字符串,路径并不一定指向硬盘上,换句话说就是…
0. 前言 继续之前的C# IO流,在前几篇小短片中我们大概看了下C# 的基础IO也对文件.目录和路径的操作有了一定的了解.这一篇开始,给大家演示一下流的各种操作.以文件流为例,一起来看看如何操作吧. 注:之前更新了一篇<Spring Cloud 实战日记>,这是一个新的系列,有兴趣的小伙伴可以从我的账号首页进去看看. 1. 简单的IO流读写文件 先来看一部分代码: class Program { static void Main(string[] args) { var directory…
前言 Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言,它由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年.自面世以后,Python 深受广大开发者的喜迎,在网站开发,网络爬虫,数据分析,机器学习,人工智能等领域都有其过人之处.在"Python基础教程"中,本人将会从各个不同领域介绍Python的用法,今天就先从最常用的网络爬虫开始说起.网络爬虫主要目的是通过定期收集网络的信息,把信息保存后进行分析归类,最后通过报表…
aggregate()聚合,主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*) 接上边的数据库: > db.user.aggregate([{$group:{_id:"name",num:{$sum:1}}}]) { "_id" : "name", "num" : 6 }> db.user.aggregate([{$group:{_id:"$nam…
MongoDB 一.下载MongoDB数据库 1.进入MongoDB官网进行下载,网址:https://www.mongodb.com/. 2.下载完成后可进行安装,安装后,并有了MongoDB服务. 二.配置环境变量 1.在环境变量中的系统变量新建一个名为MONGODB_HOME变量名,变量值为MongoDB文件中bin文件夹的所在路径 2.在系统变量中的Path变量中新建一个,并把%MONGODB_HOME%\bin添加上去. 3.检验是否配置成功,进入cmd命令行,输入mongo loca…
0. 前言 这是对C# 基础系列的一个总结,现在我们利用之前学到的知识做一个小小的工具来给我们使用. 如果有看过IO篇的小伙伴,应该有印象.当时我提过一个场景描述,我们在平时使用系统的时候,经常会为了找某个文件的位置而烦恼.那么我们现在尝试写一个控制台程序来帮助我们找文件的具体位置. 1. 分析 好,大家应该初步了解了需求内容.然后让我们来做一个简单的需求分析: 简单分析一下需求包括哪些功能点 规划各个功能点的实现方式 嗯,理论上讲还有一大堆的步骤,但因为是个练手的小项目就不扯那么多没用的了.简…
Mongodb数据库主从复制的搭建 Writeby:lipeng                                    date:2014-10-22 最近项目上用到了位置查询,在网上看到mongodb支持距离的查询,所以就学习了一下mongodb,在学习中总结了一下遇到的问题和解决的办法,以及mongodb的安装,主从复制,集群和在.NET应用程序中的操作,记录下来方便自己以后用得到,同时也希望能帮助那些初学mongodb的人,本人由于刚学mongodb,出现问题望大家提醒出来…
上一篇我们学习了利用windows API创建工具栏和菜单栏,与上一篇紧密联系的就是菜单栏,菜单栏是一个大多数复杂一些的Windows应用程序不可或缺的部分.比如下图就是Windows自带的记事本的菜单栏: 菜单一般都是在标题栏下,工具栏以上,常常叫主菜单或顶级菜单(top-level menu),顶级菜单可能还会有弹出菜单(popup menu)或子菜单(submenu).弹出菜单还有被“选中”(checked)状态,各菜单还有启用.禁用状态. 每一个菜单都有一个ID与之对应,当某个菜单被点击…
本篇是基于<Android应用案例开发大全,吴亚峰等著>的项目开发实例源码,其中有些图片,我做了一些修改,用于个人学习,请勿用于商业. 1, 日程管理专家 mvn archetype:generate -DarchetypeArtifactId=android-quickstart -DarchetypeGroupId=de.akquinet.android.archetypes -DarchetypeVersion=1.0.11 -DgroupId=com.vanceinfo.android…
前面的话 虽然ajax全称是asynchronous javascript and XML.但目前使用ajax技术时,传递JSON已经成为事实上的标准.因为相较于XML而言,JSON简单且方便.本文将上一篇中的实例进行改写,以JSON的方式来进行数据传递 前端页面 <!-- 前端页面 --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"…