MongoDB Map ReduceMap-Reduce是一种计算模型,简单的说就是将大批量的工作(数据)分解(MAP)执行,然后再将结果合并成最终结果(REDUCE)。MongoDB提供的Map-Reduce非常灵活,对于大规模数据分析也相当实用。
MapReduce 命令以下是MapReduce的基本语法:
db.collection.mapReduce( function() {emit(key,value);}, //map 函数 function(key,values) {return reduceFunction}, //reduce 函数 { out: collection, query: document, sort: document, limit: number })
使用 MapReduce 要实现两个函数 Map 函数和 Reduce 函数,Map 函数调用 emit(key, value),遍历 collection 中所有的记录, 将 key 与 val ...
MongoDB Limit 与 Skip 方法MongoDB Limit() 方法如果你需要在 MongoDB 中读取指定数量的数据记录,可以使用 MongoDB 的 limit() 方法,如果想跳过指定数量的文档读取数据可以使用 skip() 方法。
limit() 方法用于限制查询结果返回的文档数量,而 skip() 方法用于跳过指定数量的文档。这两个方法通常一起使用,可以用来实现分页查询或在大型数据集上进行分批处理。limit() 方法limit() 方法用于限制查询结果返回的文档数量。语法limit() 方法基本语法如下所示:
db.collection.find().limit():返回的文档数量。实例// 返回前 10 个文档db.myCollection.find().limit(10);
实例集合 col 中的数据如下:
{ “_id” : ObjectId(“56066542ade2f21f36b0313a”), “title” : “PHP 教程”, “description” : “PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。” ...
MongoDB GridFSGridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等)。GridFS 也是文件存储的一种方式,但是它是存储在MonoDB的集合中。GridFS 可以更好的存储大于16M的文件。GridFS 会将大文件对象分割成多个小的chunk(文件片段),一般为256k/个,每个chunk将作为MongoDB的一个文档(document)被存储在chunks集合中。
GridFS 用两个集合来存储一个文件:fs.files与fs.chunks。每个文件的实际内容被存在chunks(二进制数据)中,和文件有关的meta数据(filename,content_type,还有用户自定义的属性)将会被存在files集合中。
以下是简单的 fs.files 集合文档:
{ “filename”: “test.txt”, “chunkSize”: NumberInt(261120), “uploadDate”: ISODate(“2014-04-13T11:32:33.557Z”), “md5”: “7b762939 ...
MongoDB - 连接在本教程我们将讨论 MongoDB 的不同连接方式。启动 MongoDB 服务在前面的教程中,我们已经讨论了如何启动 MongoDB 服务,你只需要在 MongoDB 安装目录的 bin 目录下执行 mongodb 即可。执行启动操作后,mongodb 在输出一些必要信息后不会输出任何信息,之后就等待连接的建立,当连接被建立后,就会开始打印日志信息。你可以使用 MongoDB shell 来连接 MongoDB 服务器。你也可以使用 PHP 来连接 MongoDB。本教程我们会使用 MongoDB shell 来连接 Mongodb 服务,之后的章节我们将会介绍如何通过 PHP、Python 以及 Node.js 来连接 MongoDB 服务。标准 URI 连接语法:
mongodb://[username:password@]host1[:port1][,…hostN[:portN]][/[defaultauthdb][?options]]mongodb://:协议头,表示使用 MongoDB。[usernam ...
MongoDB $type 操作符在 MongoDB 中,$type 操作符用于查询具有指定类型的字段的文档。
MongoDB 的 $type 操作符用于查询字段的 BSON 数据类型。它允许您指定一个或多个类型,并返回匹配这些类型的文档。以下是 $type 操作符的详细介绍和示例。语法:db.collection.find({ field: { $type: } })field:要检查类型的字段。type:指定的 BSON 类型,可以是类型的数字代码或类型名称的字符串。BSON 类型以下是常见的 BSON 类型及其对应的数字代码和字符串名称:
类型代码类型名称1double2string3object4array5binData6undefined7objectId8bool9date10null11regex12dbPointer13javascript14symbol15javascriptWithScope16int17timestamp18long19decimal255minKey127maxKey实例
查找字段类型为字符串的文档:db.myCollection.find ...
Mac OSX 平台安装 MongoDB
MongoDB 提供了 OSX 平台上 64 位的安装包,你可以在官网下载安装包。下载地址:https://www.mongodb.com/try/download/community
从 MongoDB 3.0 版本开始只支持 OS X 10.7 (Lion) 版本及更新版本的系统。
接下来我们使用 curl 命令来下载安装:
进入 /usr/localcd /usr/local
下载sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz
解压sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz
重命名为 mongodb 目录sudo mv mongodb-osx-x86_64-4.0.9/ mongodb
安装完成后,我们可以把 MongoDB 的二进制命令文件目录(安装目录/bin)添加到 PATH 路径中:
export PATH= ...
Linux平台安装MongoDBMongoDB 提供了 linux 各个发行版本 64 位的安装包,你可以在官网下载安装包。安装前我们需要安装各个 Linux 平台依赖包。Red Hat/CentOS:sudo yum install libcurl opensslUbuntu 18.04 LTS (“Bionic”)/Debian 10 “Buster”:sudo apt-get install libcurl4 opensslUbuntu 16.04 LTS (“Xenial”)/Debian 9 “Stretch”:sudo apt-get install libcurl3 opensslMongoDB 源码下载地址:https://www.mongodb.com/try/download/community
这里我们选择 tgz 下载,下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装) 。
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu160 ...
Sourcetree 使用教程
Git 有很多图形界面工具 ( GUI ),比如 SourceTree、Github Desktop、TortoiseGit 等。SourceTree 是一个 Git 客户端管理工具,适用于 Windows 和 Mac 系统。SourceTree 简化了开发者与代码仓库之间的 Git 操作方式,我们可以通过界面菜单很方便的处理 Git 操作,而不需要通过命令。通过 SourceTree,我们可以管理所有的 Git 库,无论是远程还是本地的。SourceTree 支持 Bitbucket、GitHub 以及 Gitlab 等远程仓库。
Sourcetree 安装我们可以在 Sourcetree 官网 https://www.sourcetreeapp.com/ 直接点击下载按钮来下载:
其他版本可以查看:https://www.sourcetreeapp.com/download-archives下载完成后,解压 ZIP 文件,双击应用程序文件(Windows 为 EXE 或 Mac 为 DMG)进行安装。安装过程中,我们只需要同意 Atlassian ...
Git 远程仓库(Github)Git 并不像 SVN 那样有个中心服务器。目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。
你就需要将数据放到一台其他开发人员能够连接的服务器上。本例使用了 Github 作为远程仓库,你可以先阅读我们的 Github 简明教程。
添加远程库要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,命令格式如下:
git remote add [shortname] [url]
本例以 Github 为例作为远程仓库,如果你没有 Github 可以在官网 https://github.com/注册。
由于你的本地 Git 仓库和 GitHub 仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息:使用以下命令生成 SSH Key:$ ssh-keygen -t rsa -C “youremail@example. ...
Git 进阶操作在掌握了 Git 的基础操作之后,进阶操作可以帮助你更高效地管理和优化你的代码库。以下是一些常见的进阶操作及其详细说明:
交互式暂存:逐块选择要暂存的更改,精细控制提交内容。Git Stash:临时保存工作进度,方便切换任务。Git Rebase:将一个分支上的更改移到另一个分支之上,保持提交历史线性。Git Cherry-Pick:选择特定提交并应用到当前分支。
1、交互式暂存(Interactive Staging)git add 命令可以选择性地将文件或文件的一部分添加到暂存区,这在处理复杂更改时非常有用。
使用 git add -p:逐块选择要暂存的更改。
git add -p执行此命令后,Git 会逐块显示文件的更改,你可以选择是否暂存每个块。常用选项包括:
y:暂存当前块n:跳过当前块s:拆分当前块e:手动编辑当前块q:退出暂存
2、Git Stash:临时保存工作进度git stash 命令允许你临时保存当前工作目录的更改,以便你可以切换到其他分支或处理其他任务。保存当前工作进度:git stash查看存储的进度:git stash list
应用最近一次 ...