MongoDB
文章平均质量分 58
冷月醉雪
这个作者很懒,什么都没留下…
展开
-
MongoDB 自动增长
MongoDB 没有像 SQL 一样有自动增长的功能, MongoDB 的 _id 是系统自动生成的12字节唯一标识。但在某些情况下,我们可能需要实现 ObjectId 自动增长功能。由于 MongoDB 没有实现这个功能,我们可以通过编程的方式来实现,以下我们将在 counters 集合中实现_id字段自动增长。使用counters集合考虑以下products文档,我们希望_id...原创 2018-05-15 10:18:09 · 375 阅读 · 0 评论 -
MongoDB 索引限制
额外开销 每个索引占据一定的存储空间,在进行插入,更新和删除操作时也需要对索引进行操作。所以,如果你很少对集合进行读取操作,建议不使用索引。内存(RAM)使用 由于索引是存储在内存(RAM)中,你应该确保该索引的大小不超过内存的限制。 如果索引的大小大于内存的限制,MongoDB会删除一些索引,这将导致性能下降。查询限制 索引不能被以下的查询使用: ...原创 2018-05-14 11:09:55 · 918 阅读 · 0 评论 -
MongoDB 高级索引
"address": { "city": "Los Angeles", "state": "California", "pincode": "123" }, "tags": [ "music", "cricket", &原创 2018-05-14 11:09:29 · 233 阅读 · 0 评论 -
MongoDB 原子操作
原子操作模型 book = { _id: 123456789, title: "MongoDB: The Definitive Guide", author: [ "Kristina Chodorow", "Mike Dirolf" ], published_date: ISODate("2010-09-24...原创 2018-05-14 11:09:15 · 1424 阅读 · 0 评论 -
PHP7 MongoDB 安装与使用
PHP7 Mongdb 扩展安装 我们使用 pecl 命令来安装:$ /usr/local/php7/bin/pecl install mongodb 执行成功后,会输出以下结果:……Build process completed successfullyInstalling '/usr/local/php7/lib/php/extensions/no-debu...原创 2018-05-11 10:13:05 · 1377 阅读 · 0 评论 -
MongoDB PHP
在php中使用mongodb你必须使用 mongodb 的 php驱动。确保连接及选择一个数据库 为了确保正确连接,你需要指定数据库名,如果数据库在mongoDB中不存在,mongoDB会自动创建 代码片段如下:<?php$m = new MongoClient(); // 连接默认主机和端口为:mongodb://localhost:27017$db = $m...原创 2018-05-11 10:13:36 · 311 阅读 · 0 评论 -
MongoDB PHP 扩展
Linux上安装MongoDB PHP扩展在终端上安装 你可以在linux中执行以下命令来安装MongoDB的PHP扩展驱动$ sudo pecl install mongo 使用php的pecl安装命令必须保证网络连接可用以及root权限。安装手册 如果你想通过源码来编译扩展驱动。你必须手动编译源码包,这样做的好是最新修正的bug包含在源码包中。 ...原创 2018-05-11 10:13:28 · 631 阅读 · 0 评论 -
MongoDB JAVA
环境配置 在Java程序中如果使用MongoDB,你需要确保已经安装了Java环境及MongoDB JDBC驱动。 首先你必须下载mongo jar包,下载地址:http://mongodb.github.io/mongo-java-driver/, 请确保下载最新版本。 你需要将 mongo-java-driver-3.2.2.jar (找到合适的版本)包含在你的 clas...原创 2018-04-23 12:30:33 · 139 阅读 · 0 评论 -
MongoDB 监控
在你已经安装部署并允许MongoDB服务后,你必须要了解MongoDB的运行情况,并查看MongoDB的性能。这样在大流量得情况下可以很好的应对并保证MongoDB正常运作。 MongoDB中提供了mongostat 和 mongotop 两个命令来监控MongoDB的运行情况。 mongostat命令 mongostat是mongodb自带的状态检测工具...原创 2018-04-18 22:05:39 · 838 阅读 · 0 评论 -
MongoDB ObjectId
创建新的ObjectId使用以下代码生成新的ObjectId:>newObjectId = ObjectId()上面的语句返回以下唯一生成的id:ObjectId("5349b4ddd2781d08c09890f3")你也可以使用生成的id来取代MongoDB自动生成的ObjectId:>myObjectId = ObjectId("5349b4ddd...原创 2018-05-14 11:10:19 · 861 阅读 · 0 评论 -
MongoDB Map Reduce
Map-Reduce是一种计算模型,简单的说就是将大批量的工作(数据)分解(MAP)执行,然后再将结果合并成最终结果。 MongoDB提供的Map-Reduce非常灵活,对于大规模数据分析也相当实用。 MapReduce 命令 以下是MapReduce的基本语法: >db.collection.mapReduce( function() {...原创 2018-05-14 11:10:27 · 241 阅读 · 0 评论 -
MongoDB 全文检索
全文检索对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。 MongoDB 从 2.4 版本开始支持全文检索,目前支持15种语言的全文索引。·danish ·dutch ·english ·finnish ·french·german ·hunga...原创 2018-05-14 11:10:41 · 573 阅读 · 0 评论 -
MongoDB 查询分析
MongoDB查询分析可以确保我们建议的索引是否有效,是查询语句性能分析的重要工具。 MongoDB查询分析常用的函数有:explain()和hint(). 使用explain() explain操作提供了查询信息,使用索引及查询统计等,有利于我们对索引的优化; 接下来我们在user集合中创建 gender 和 user_name 的索引:>db....原创 2018-05-11 10:14:53 · 220 阅读 · 0 评论 -
MongoDB 覆盖索引查询
覆盖查询是以下的查询: ·所有的查询字段是索引的一部分 ·所有的查询返回字段在同一个索引中 由于所有出现在查询中的字段是索引的一部分, MongoDB 无需在整个数据文档中检索匹配查询条件和返回使用相同索引的查询结果。 因为索引存在于RAM中,从索引中获取数据比通过扫描文档读取数据要快得多。 使用覆盖索引查询 为了测试覆盖索引查询,使用以...原创 2018-05-11 10:14:21 · 388 阅读 · 0 评论 -
MongoDB数据库引用
DBRefs vs 手动引用 DBRef的形式:{ $ref : , $id : , $db : } 三个字段表示的意义为: $ref:集合名称 $id:引用的id $db:数据库名称,可选参数{ "_id":ObjectId("53402597d852426020000002"), "address": { "$ref": "address...原创 2018-05-11 10:04:20 · 1032 阅读 · 1 评论 -
MongoDB 关系
MongoDB的关系表示多个文档之间在逻辑上的相互联系。 文档间可以通过嵌入和引用来建立联系。 MongoDB中的关系可以是: ·1:1(1对1) ·1:N(1对多) ·N:1(多对1) ·N:N(多对多) 接下来我们来考虑用户与用户地址的关系。 一个用户可以有多个地址,所以是一对多的关系。 以下是use...原创 2018-05-11 10:04:08 · 330 阅读 · 0 评论 -
MongoDB 固定集合
MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素!创建固定集合 我们通过createCollection来创建一个固定集合,且capped选项设置为true:>db.createCollection("cappedLogCol...原创 2018-05-15 10:17:59 · 338 阅读 · 0 评论 -
MongoDB GridFS
GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等)。 GridFS 也是文件存储的一种方式,但是它是存储在MonoDB的集合中。 GridFS 可以更好的存储大于16M的文件。 GridFS 会将大文件对象分割成多个小的chunk(文件片段),一般为256k/个,每个chunk将作为MongoDB的一个文档(document)被...原创 2018-05-15 10:17:45 · 205 阅读 · 0 评论 -
MongoDB管理工具
RockMongo是PHP5写的一个MongoDB管理工具。 通过 Rockmongo 你可以管理 MongoDB服务,数据库,集合,文档,索引等等。 它提供了非常人性化的操作。类似 phpMyAdmin(PHP开发的MySql管理工具)。 Rockmongo 下载地址:http://rockmongo.com/downloads 参考:https:...原创 2018-05-14 11:11:00 · 204 阅读 · 0 评论 -
MongoDB 正则表达式
正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。许多程序设计语言都支持利用正则表达式进行字符串操作。MongoDB 使用 $regex 操作符来设置匹配字符串的正则表达式。MongoDB使用PCRE (Perl Compatible Regular Expression) 作为正则表达式语言。不同于全文检索,我们使用正则表达式不需要做任何配置。考虑以下 ...原创 2018-05-14 11:10:49 · 970 阅读 · 0 评论 -
Golang leaf MongoDB测试
MongoDB 简介什么是MongoDB ?MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文...原创 2018-03-24 16:20:17 · 1396 阅读 · 0 评论 -
MongoDB 复制(副本集)
MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性。复制还允许你从硬件故障和服务中断中恢复数据。MongoDB复制原理 mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。 mongodb各个节点常见的搭配方...原创 2018-02-25 18:11:27 · 231 阅读 · 0 评论 -
MongoDB 分片
在MongoDB里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求。 在MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量。这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据。为什么使用分片 ·复制所有的写入操作到主节点 ·延迟的敏感数据会在主节点查询 ·...原创 2018-02-26 20:15:54 · 177 阅读 · 0 评论 -
MongoDB 删除数据库
语法 MongoDB 删除数据库的语法格式如下:db.dropDatabase() 删除当前数据库,默认为test,你可以使用db命令查看当前数据库名。实例 以下实例我们删除了数据库runoob。首先,查看所有数据库:> show dbslocal 0.078GBrunoob 0.078GBtest 0.078GB 接下...原创 2018-02-12 11:45:41 · 273 阅读 · 0 评论 -
MongoDB 创建数据库
语法 MongoDB 创建数据库的语法格式如下:use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库。 实例 以下实例我们创建了数据库 runoob:> use runoobswitched to db runoob> dbrunoob> 如果你想查看所有数据库,可以使用show d...原创 2018-02-12 11:40:03 · 577 阅读 · 0 评论 -
MongoDB 连接
标准URL连接mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] ·mongodb: //这是固定的格式,必须要指定 ·username:password@:可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库;...原创 2018-02-12 11:29:30 · 441 阅读 · 0 评论 -
MongoDB 概念解析
MongoDB 概念说明 通过下图实例,我们也可以更直观的了解Mongo中的一些概念: 数据库 一个mongodb中可以建立多个数据库。 MongoDB的默认数据库为"db",该数据库存储在data目录中。 MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。 "show dbs"...原创 2018-02-11 18:00:00 · 221 阅读 · 0 评论 -
Windows 平台安装 MongoDB
MongoDB下载 MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:https://www.mongodb.com/download-center#community 注意:在 MongoDB 2.2 版本后已经不再支持 Windows XP 系统。最新版本也已经没有了 32 位...原创 2018-02-09 11:43:39 · 207 阅读 · 0 评论 -
Mac OSX平台安装MongoDB
MongoDB 提供了 OSX 平台上 64 位的安装包,你可以在官网下载安装包。 下载地址:https://www.mongodb.com/download-center#community 注意:从 MongoDB 3.0 版本开始只支持 OS X 10.7 (Lion) 版本及更新版本的系统。 安装MongoDB 使用curl命令来下载安装:...原创 2018-02-09 12:50:16 · 1205 阅读 · 0 评论 -
Linux平台安装MongoDB
MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包。 下载地址:https://www.mongodb.com/download-center#community点击打开链接安装MongoDB 下载完安装包,并解压tgz(以下演示的是64位Linux上的安装)curl -O https://fastdl.mongodb.or...原创 2018-02-09 12:06:42 · 175 阅读 · 0 评论 -
MongoDB 备份(mongodump)与恢复(mongorestore)
MongoDB 数据备份 在MongoDB中我们使用monogodump命令来备份MongoDB数据。该命令可以导出所有数据到指定目录中。monogodump命令可以通过参数指定导出的数据量级转存的服务器。语法>mongodump -h dbhost -d dbname -o dbdirectory-h: MongDB所在服务器地址,例如:127.0.0.0,当然也可以...原创 2018-02-26 20:27:16 · 433 阅读 · 0 评论 -
MongoDB 插入文档
MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:db.COLLECTION_NAME.insert(document) 实例 以下文档可以存储在 MongoDB 的 runoob 数据库的 col 集合中:>db.col.insert({title: 'MongoDB 教程', description: '...原创 2018-02-13 15:34:01 · 469 阅读 · 0 评论 -
MongoDB 更新文档
update() 方法 update()方法用于更新已存在的文档。语法格式如下:db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <docume...原创 2018-02-13 16:07:37 · 263 阅读 · 0 评论 -
MongoDB 聚合
MongoDB中聚合的方法使用aggregate()。 MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。语法>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)示例 集合中的数据如下:{ _id: ObjectId(7df...原创 2018-02-25 17:53:36 · 239 阅读 · 0 评论 -
MongoDB 索引
索引是特殊的数据结构,存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构,通常能够极大的提高查询的效率。语法 MongoDB使用ensureIndex()方法来创建索引。>db.COLLECTION_NAME.ensureIndex({KEY:1}) 语法中Key值为你要创建的索引字段,1为指定按升序创建索引,如果你想按降...原创 2018-02-25 17:15:10 · 216 阅读 · 0 评论 -
MongoDB 排序
在MongoDB中使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用1和-1来指定排序的方式,其中1为升序排序,而-1是用于降序排序。语法>db.COLLECTION_NAME.find().sort({KEY:1}) 实例 col 集合中的数据如下:{ "_id" : ObjectId("56066542ade2f...原创 2018-02-24 18:07:35 · 1952 阅读 · 0 评论 -
MongoDB Limit与Skip方法
MongoDB Limit()方法 如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。语法>db.COLLECTION_NAME.find().limit(NUMBER)实例 集合 col 中的数据如下:{ "_id" : Object...原创 2018-02-24 17:54:58 · 473 阅读 · 0 评论 -
MongoDB $type 操作符
$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。MongoDB 中可以使用的类型如下表所示: 我们使用的数据库名称为"runoob" 我们的集合名称为"col", 以下为我们插入的数据。 简单的集合"col":>db.col.insert({ title: 'PHP 教程', description: 'PHP 是一种...原创 2018-02-24 17:45:21 · 240 阅读 · 0 评论 -
MongoDB 条件操作符
MongoDB中条件操作符有: ·(>)大于 - $gt ·(<)小于 - $lt ·(>=)大于等于 - $gte ·(<=)小于等于 - $lte我们使用的数据库名称为"runoob" 我们的集合名称为"col",以下为我们插入的数据。为了方便测试,我们可以先使用以下命令清空集合 "col" 的数据:db.col.r...原创 2018-02-23 18:34:49 · 181 阅读 · 0 评论 -
MongoDB 查询文档
MongoDB 查询文档使用 find() 方法。find() 方法以非结构化的方式来显示所有文档。语法db.collection.find(query, projection) ·query:可选,使用查询操作符指定查询条件; ·projection: 可选,使用投影操作符指定返回的键。查询时返回文档中所有键值,只需省略该参数即可。 如果你需要以易读的方式来读取...原创 2018-02-23 17:52:10 · 386 阅读 · 0 评论