MongoDB指南---18、聚合命令

2019-06-21
阅读 5 分钟
2.1k
MongoDB为在集合上执行基本的聚合任务提供了一些命令。这些命令在聚合框架出现之前就已经存在了,现在(大多数情况下)已经被聚合框架取代。然而,复杂的group操作可能仍然需要使用JavaScript,count和distinct操作可以被简化为普通命令,不需要使用聚合框架。

MongoDB指南---17、MapReduce

2019-06-21
阅读 6 分钟
1.9k
MapReduce是聚合工具中的明星,它非常强大、非常灵活。有些问题过于复杂,无法使用聚合框架的查询语言来表达,这时可以使用MapReduce。MapReduce使用JavaScript作为“查询语言”,因此它能够表达任意复杂的逻辑。然而,这种强大是有代价的:MapReduce非常慢,不应该用在实时的数据分析中。MapReduce能够在多台服务器之间并...

MongoDB指南---16、聚合

2019-06-20
阅读 12 分钟
1.9k
如果你有数据存储在MongoDB中,你想做的可能就不仅仅是将数据提取出来那么简单了;你可能希望对数据进行分析并加以利用。本章介绍MongoDB提供的聚合工具:

MongoDB指南---15、特殊的索引和集合:地理空间索引、使用GridFS存储文件

2019-06-20
阅读 6 分钟
3.3k
MongoDB支持几种类型的地理空间索引。其中最常用的是2dsphere索引(用于地球表面类型的地图)和2d索引(用于平面地图和时间连续的数据)。2dsphere允许使用GeoJSON格式([链接])指定点、线和多边形。点可以用形如[longitude, latitude]([经度,纬度])的两个元素的数组表示:

MongoDB指南---14、特殊的索引和集合:固定集合、TTL索引、全文本索引

2019-06-20
阅读 9 分钟
3.3k
上一篇文章:MongoDB指南---13、索引类型、索引管理下一篇文章:MongoDB指南---15、特殊的索引和集合:地理空间索引、使用GridFS存储文件 本章介绍MongoDB中一些特殊的集合和索引类型,包括: 用于类队列数据的固定集合(capped collection); 用于缓存的TTL索引; 用于简单字符串搜索的全文本索引; 用于二维平面和球...

MongoDB指南---13、索引类型、索引管理

2019-06-20
阅读 5 分钟
3k
创建索引时可以指定一些选项,使用不同选项建立的索引会有不同的行为。接下来的小节会介绍常见的索引变种,更高级的索引类型和特殊选项会在下一章介绍。

MongoDB指南---12、使用explain()和hint()、何时不应该使用索引

2019-06-20
阅读 6 分钟
5.7k
从上面的内容可以看出,explain()能够提供大量与查询相关的信息。对于速度比较慢的查询来说,这是最重要的诊断工具之一。通过查看一个查询的explain()输出信息,可以知道查询使用了哪个索引,以及是如何使用的。对于任意查询,都可以在最后添加一个explain()调用(与调用sort()或者limit()一样,不过explain()必须放在最...

MongoDB指南---11、使用复合索引、$操作符如何使用索引、索引对象和数组、索引基数

2019-06-20
阅读 8 分钟
5k
在多个键上建立的索引就是复合索引,在上面的小节中,已经使用过复合索引。复合索引比单键索引要复杂一些,但是也更强大。本节会更深入地介绍复合索引。

MongoDB指南---10、索引、复合索引 简介

2019-06-20
阅读 9 分钟
3.3k
上一篇文章:MongoDB指南---9、游标与数据库命令下一篇文章:MongoDB指南---11、使用复合索引、$操作符如何使用索引、索引对象和数组、索引基数 本章介绍MongoDB的索引,索引可以用来优化查询,而且在某些特定类型的查询中,索引是必不可少的。 什么是索引?为什么要用索引? 如何选择需要建立索引的字段? 如何强制使用...

MongoDB指南---9、游标与数据库命令

2019-06-20
阅读 8 分钟
3.1k
数据库使用游标返回find的执行结果。客户端对游标的实现通常能够对最终结果进行有效的控制。可以限制结果的数量,略过部分结果,根据任意键按任意顺序的组合对结果进行各种排序,或者是执行其他一些强大的操作。要想从shell中创建一个游标,首先要对集合填充一些文档,然后对其执行查询,并将结果分配给一个局部变量(用...

Python标准库---18、文本处理服务:string 常见的字符串操作

2019-06-19
阅读 12 分钟
2.3k
string.ascii_letters下文所述 ascii_lowercase 和 ascii_uppercase 常量的拼连。 该值不依赖于语言区域。

MongoDB指南---8、特定类型的查询

2019-06-13
阅读 9 分钟
4.4k
上一篇文章:MongoDB指南---7、find简介与查询条件下一篇文章:MongoDB指南---9、游标与数据库命令 如第2章所述,MongoDB的文档可以使用多种类型的数据。其中有一些在查询时会有特别的表现。 4.3.1 null null类型的行为有点奇怪。它确实能匹配自身,所以要是有一个包含如下文档的集合: {代码...} 就可以按照预期的方式...

MongoDB指南---7、find简介与查询条件

2019-06-12
阅读 4 分钟
4.6k
上一篇文章:MongoDB指南---6、更新文档下一篇文章:MongoDB指南---8、特定类型的查询 本章将详细介绍查询。主要会涵盖以下几个方面: 使用find或者findOne函数和查询文档对数据库执行查询; 使用$条件查询实现范围查询、数据集包含查询、不等式查询,以及其他一些查询; 查询将会返回一个数据库游标,游标只会在你需要...

MongoDB指南---6、更新文档

2019-06-12
阅读 19 分钟
2.9k
文档存入数据库以后,就可以使用update方法来更新它。update有两个参数,一个是查询文档,用于定位需要更新的目标文档;另一个是修改器(modifier)文档,用于说明要对找到的文档进行哪些修改。更新操作是不可分割的:若是两个更新同时发生,先到达服务器的先执行,接着执行另外一个。所以,两个需要同时进行的更新会迅...

MongoDB指南---5、创建、删除文档

2019-06-11
阅读 3 分钟
2.1k
上一篇文章:MongoDB指南---4、MongoDB基础知识-使用MongoDB Shell下一篇文章:MongoDB指南---6、更新文档 本章会介绍对数据库移入/移出数据的基本操作,具体包含如下操作: 向集合添加新文档; 从集合里删除文档; 更新现有文档; 为这些操作选择合适的安全级别和速度。 3.1 插入并保存文档 插入是向MongoDB中添加数据...

MongoDB指南---4、MongoDB基础知识-使用MongoDB Shell

2019-06-11
阅读 6 分钟
3.6k
本节将介绍如何将shell作为命令行工具的一部分来使用,如何对shell进行定制,以及shell的一些高级功能。在上面的例子中,我们只是连接到了一个本地的mongod实例。事实上,可以将shell连接到任何MongoDB实例(只要你的计算机与MongoDB实例所在的计算机能够连通)。在启动shell时指定机器名和端口,就可以连接到一台不同的...

MongoDB指南---3、MongoDB基础知识-数据类型

2019-06-11
阅读 4 分钟
1.8k
本章开始部分介绍了文档的基本概念,现在你已经会启动、运行MongoDB,也会在shell中进行一些操作了。这一节的内容会更加深入。MongoDB支持将多种数据类型作为文档中的值,下面将一一介绍。

MongoDB指南---2、MongoDB基础知识-文档、集合、数据库、客户端

2019-06-11
阅读 7 分钟
2.1k
MongoDB非常强大但很容易上手。本章会介绍一些MongoDB的基本概念。文档是MongoDB中数据的基本单元,非常类似于关系型数据库管理系统中的行,但更具表现力。类似地,集合(collection)可以看作是一个拥有动态模式(dynamic schema)的表。MongoDB的一个实例可以拥有多个相互独立的数据库(database),每一个数据库都拥...

MongoDB指南---1、MongoDB简介

2019-06-11
阅读 2 分钟
1.5k
MongoDB是一款强大、灵活,且易于扩展的通用型数据库。它能扩展出非常多的功能,如二级索引(secondary index)、范围查询(range query)、排序、聚合(aggregation),以及地理空间索引(geospatial index)。本章涵盖了MongoDB的主要设计特点。

Python--Redis实战:第五章:使用Redis构建支持程序:第4节:服务的发现与配置

2018-12-04
阅读 6 分钟
2.5k
随着我们越来越多地使用Redis以及其他服务,如何存储各项服务的配置信息将变成一个棘手的问题:对于一个Redis服务器、一个数据库服务器以及一个Web服务器来说,存储它们的配置信息并不困难;但如果我们使用了一个拥有好几个从服务器的Redis主服务器,或者为不同的应用程序设置了不同的Redis服务器,甚至为数据库也设置了...

Python--Redis实战:第五章:使用Redis构建支持程序:第3节:查找IP所属城市以及国家

2018-12-02
阅读 4 分钟
2.6k
通过将统计数据和日志存储到Redis里面,我们可以收集访客在系统中的行为信息。但是直到目前为止,我们都忽略了访客行为中非常重要的一部分,那就是:这些访客是从哪里来的?为了回答这个问题,在这一节中,我们将构建一系列用于分析和载入IP所属地数据库的函数,并编写一个可以根据访客的IP地址来查找访客所在城市、行政...

Python--Redis实战:第五章:使用Redis构建支持程序:第2节:计数器和统计数据

2018-12-02
阅读 12 分钟
3.5k
正如第三章所述,通过记录各个页面的被访问次数,我们可以根据基本的访问计数信息来决定如何缓存页面。但是第三章只是一个非常简单的例子,现实情况很多时候并非是如此简单的,特别是涉及实际网站的时候,尤为如此。

Python--Redis实战:第五章:使用Redis构建支持程序:第1节:使用Redis来记录日志

2018-11-28
阅读 5 分钟
2k
在构建应用程序和服务的过程中,对正在运行的系统的相关信息的挖掘能力将变得越来越重要:无论是通过挖掘信息来诊断系统问题,还是发现系统中潜在的问题,甚至是挖掘与用户有关的信息:这些都需要用到日志。

Python实用技法第22篇:利用Shell通配符做字符串匹配

2018-11-27
阅读 1 分钟
3.2k
上一篇文章:Python实用技法第21篇:在字符串的开头和结尾处做文本匹配上一篇文章:Python实用技法第23篇:正则:文本模式的匹配和查找 1、需求? 当工作在UNIX Shell下时,我们想使用常见的通配符模式(即:*.py,Dat[0-9]*.csv等)来对文本做匹配。 2、解决方案? fnmatch模块提供了两个函数:fnmatch()和fnmatchcase()...

Python模块分析:第4节-logging日志模块

2018-11-26
阅读 7 分钟
3.9k
上一篇文章:Python模块分析:第3节-typing模块 一、日志记录的级别 debug:优先级10,记录调试的详细信息,只在调试时开启 info:优先级20,记录普通的消息,报告错误和警告等待。 warning:优先级30,记录相关的警告信息。 error:优先级40,记录错误信息、程序崩溃 critical:优先级50,记录错误信息 如果不设置,默...

Python模块分析:第3节-typing模块

2018-11-22
阅读 2 分钟
5.3k
Python是一门弱类型的语言,很多时候我们可能不清楚函数参数类型或者返回值类型,很有可能导致一些类型没有指定方法,typing模块可以很好的解决这个问题。

Python模块分析:第2节-hashlib加密模块

2018-11-22
阅读 3 分钟
2.9k
上一篇文章:Python模块分析:第1节-random模块下一篇文章:Python模块分析:第3节-typing模块 hashlib模块是用来对字符串进行hash加密的模块,明文与密文是一一对应不变的关系;用于注册、登录时用户名、密码等加密使用。 一、函数分析 1、共有5种加密算法 md5(),sha1(),sha224(),sha256(),sha3840(),sha512(),分别得...

Python--Redis实战:第四章:数据安全与性能保障:第8节:关于性能方面的注意事项

2018-11-19
阅读 3 分钟
3.9k
习惯了关系数据库的用户在刚开始使用Redis的时候,通常会因为Redis带来的上百倍的性能提升而感到欣喜若狂,却没有认识到Redis性能实际上还可以进一步的提高。虽然上一节介绍的非事务型流水线可以尽可能地减少应用程序和Redis之间的通信往返次数,但是对于一个已经存在的应用程序,我们应该如何判断这个程序能否被优化呢...

Python--Redis实战:第四章:数据安全与性能保障:第7节:非事务型流水线

2018-11-19
阅读 4 分钟
2k
之前章节首次介绍multi和exec的时候讨论过它们的”事务“性质:被multi和exec包裹的命令在执行时不会被其他客户端打扰。而使用事务的其中一个好处就是底层的客户端会通过使用流水线来提高事务执行的性能。本节将介绍如何在不使用事务的情况下,通过使用流水线来进一步提升命令的执行性能。

Python--Redis实战:第四章:数据安全与性能保障:第6节:Redis事务

2018-11-19
阅读 7 分钟
2k
为了确保数据的正确性,我们必须认识到这一点:在多个客户端同时处理相同的数据时,不谨慎的操作很容易会导致数据出错。本节将介绍使用Redis事务来防止数据出错的方法,以及在某些情况下,使用事务来提升性能的方法。