
MongoDB 教程
文章平均质量分 82
MongoDB 教程
Mr_One_Zhang
这个作者很懒,什么都没留下…
展开
-
NoSQL 简介
NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。原创 2025-04-07 16:36:44 · 608 阅读 · 0 评论 -
什么是 MongoDB ?
MongoDB 是一个文档型数据库,数据以类似 JSON 的文档形式存储。MongoDB 的设计理念是为了应对大数据量、高性能和灵活性需求。MongoDB使用集合(Collections)来组织文档(Documents),每个文档都是由键值对组成的。原创 2025-04-07 16:37:27 · 980 阅读 · 0 评论 -
Windows 平台安装 MongoDB
如果你需要进入MongoDB后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo.exe文件,MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。如果您需要简单性和基本功能,网络服务用户选项就可以了,如果您需要对权限进行更多控制,或者需要使用特定用户凭据访问和限制资源,则选择本地或域用户选项会更合适。MongoDB 将数据目录存储在 db 目录下,我们在安装完成后可以创建它。原创 2025-04-07 16:39:06 · 634 阅读 · 0 评论 -
Linux平台安装MongoDB
MongoDB 提供了 linux 各个发行版本 64 位的安装包,你可以在官网下载安装包。安装前我们需要安装各个 Linux 平台依赖包。这里我们选择 tgz 下载,下载完安装包,并解压(以下演示的是 64 位 Linux上的安装)。wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz # 下载。原创 2025-04-07 16:42:13 · 624 阅读 · 0 评论 -
Mac OSX 平台安装 MongoDB
MongoDB 提供了 OSX 平台上 64 位的安装包,你可以在官网下载安装包。接下来我们使用 curl 命令来下载安装:# 进入 /usr/local# 下载# 解压# 重命名为 mongodb 目录安装完成后,我们可以把 MongoDB 的二进制命令文件目录(安装目录/bin)添加到 PATH 路径中:创建日志及数据存放的目录:数据存放路径:日志文件路径:接下来要确保当前用户对以上两个目录有读写的权限:创建日志文件:以上。原创 2025-04-07 16:43:58 · 823 阅读 · 0 评论 -
MongoDB Shell
MongoDB Shell 是 MongoDB 提供的官方交互式界面,允许用户与 MongoDB 数据库进行交互、执行命令和操作数据库。MongoDB Shell 是基于 JavaScript 的,允许用户直接在命令行或者脚本中使用 JavaScript 语言来操作 MongoDB 数据库。原创 2025-04-07 16:47:41 · 743 阅读 · 0 评论 -
MongoDB 概念解析
不管我们学习什么数据库都应该学习其中的基础概念,在 MongoDB 中基本的概念是文档、集合、数据库,下面我们挨个介绍。:MongoDB 的基本数据单元,通常是一个 JSON-like 的结构,可以包含多种数据类型。:类似于关系型数据库中的表,集合是一组文档的容器。在 MongoDB 中,一个集合中的文档不需要有一个固定的模式。:包含一个或多个集合的 MongoDB 实例。:Binary JSON 的缩写,是 MongoDB 用来存储和传输文档的二进制形式的 JSON。原创 2025-04-07 16:49:42 · 940 阅读 · 0 评论 -
MongoDB 用户管理
在 MongoDB 中进行用户管理涉及用户的创建、分配角色、认证和登录等操作。下面是一个详细的说明,包含如何使用 MongoDB Shell (mongo) 或 MongoDB Compass 来管理用户。原创 2025-04-07 16:51:09 · 551 阅读 · 0 评论 -
MongoDB - 连接
在本教程我们将讨论 MongoDB 的不同连接方式。原创 2025-04-07 16:53:47 · 1099 阅读 · 0 评论 -
MongoDB 创建数据库
在MongoDB中,数据库的创建是一个简单的过程,当你首次向MongoDB中插入数据时,如果数据库不存在,MongoDB会自动创建它。我们只需选择一个数据库名称,并开始向其中插入文档即可。原创 2025-04-07 16:54:54 · 842 阅读 · 0 评论 -
MongoDB 删除数据库
show tables # show collections 命令会更加准确点。> db.createCollection("runoob") # 先创建集合,类似数据库中的表。删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名。以下实例我们删除了数据库 runoob。原创 2025-04-07 16:56:12 · 233 阅读 · 0 评论 -
MongoDB 创建集合
本章节我们为大家介绍如何使用 MongoDB 来创建集合。MongoDB 中使用方法来创建集合。语法格式:cappedtruesizecapped10485760maxcapped"off""strict""moderate""error""warn"在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。原创 2025-04-07 16:57:31 · 609 阅读 · 0 评论 -
MongoDB 更新集合名
在 MongoDB 中,不能直接通过命令来重命名集合。MongoDB 可以使用 renameCollection 方法来来重命名集合。renameCollection 方法在 MongoDB 的 admin 数据库中运行,可以将一个集合重命名为另一个名称。renameCollection 命令的语法:})false。原创 2025-04-07 16:58:38 · 523 阅读 · 0 评论 -
MongoDB 插入文档
本章节中我们将向大家介绍如何将数据插入到 MongoDB 的集合中。文档的数据结构和 JSON 基本一样。所有存储在集合中的数据都是 BSON 格式。BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。原创 2025-04-07 17:00:55 · 751 阅读 · 0 评论 -
MongoDB 更新文档
在 MongoDB 中,更新文档的操作可以使用多种方法实现,常用的方法包括。原创 2025-04-08 11:19:08 · 730 阅读 · 0 评论 -
MongoDB 删除文档
常用的删除文档方法包括 deleteOne()、deleteMany() 以及 findOneAndDelete()。原创 2025-04-08 11:21:11 · 746 阅读 · 0 评论 -
MongoDB 查询文档
MongoDB 查询文档使用 find()、findOne() 方法。find() 方法以非结构化的方式来显示所有文档。原创 2025-04-08 11:23:07 · 572 阅读 · 0 评论 -
MongoDB 条件操作符
语法格式:{ field: { $lt: value } }$elemMatch (数组中至少有一个元素符合条件)原创 2025-04-08 11:25:45 · 1014 阅读 · 0 评论 -
MongoDB $type 操作符
在 MongoDB 中,$type 操作符用于查询具有指定类型的字段的文档。MongoDB 的 $type 操作符用于查询字段的 BSON 数据类型。它允许您指定一个或多个类型,并返回匹配这些类型的文档。以下是 $type 操作符的详细介绍和示例。原创 2025-04-08 11:27:53 · 856 阅读 · 0 评论 -
MongoDB Limit 与 Skip 方法
{ "_id" : ObjectId("5606654fade2f21f36b0313c"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb" ], "likes" : 100 }limit() 方法用于限制查询结果返回的文档数量,而 skip() 方法用于跳过指定数量的文档。原创 2025-04-08 11:29:13 · 480 阅读 · 0 评论 -
MongoDB 排序
在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。原创 2025-04-08 11:30:05 · 530 阅读 · 0 评论 -
MongoDB 索引
索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可能要花费几十秒甚至几分钟,这对网站的性能是非常致命的。索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构。原创 2025-04-08 11:31:10 · 515 阅读 · 0 评论 -
MongoDB 聚合
MongoDB 中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似语句中的 count(*)。原创 2025-04-08 11:32:21 · 604 阅读 · 0 评论 -
MongoDB 复制(副本集)
保障数据的安全性数据高可用性 (24*7)灾难恢复无需停机维护(如备份,重建索引,压缩)分布式读取数据。原创 2025-04-08 11:33:03 · 524 阅读 · 0 评论 -
MongoDB 分片
当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量。这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据。mongos启动参数中,chunkSize这一项是用来指定chunk的大小的,单位是MB,默认大小为200MB.步骤五: 程序代码内无需太大更改,直接按照连接普通的mongo数据库那样,将数据库连接接入接口40000。前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。步骤四: 配置Sharding。原创 2025-04-08 11:34:05 · 732 阅读 · 0 评论 -
MongoDB 备份(mongodump)与恢复(mongorestore)
备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。执行以上命令后,客户端会连接到ip为 127.0.0.1 端口号为 27017 的MongoDB服务上,并备份所有数据到 bin/dump/ 目录中。恢复的时候,先删除当前数据,然后恢复备份的数据。需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2。需要备份的数据库实例,例如:test。原创 2025-04-08 11:35:23 · 705 阅读 · 0 评论 -
MongoDB 监控
在你已经安装部署并允许MongoDB服务后,你必须要了解MongoDB的运行情况,并查看MongoDB的性能。这样在大流量得情况下可以很好的应对并保证MongoDB正常运作。MongoDB中提供了mongostat 和 mongotop 两个命令来监控MongoDB的运行情况。原创 2025-04-08 11:36:12 · 217 阅读 · 0 评论 -
MongoDB Java
要删除集合中的第一个文档,首先你需要使用com.mongodb.DBCollection类中的 findOne()方法来获取第一个文档,然后使用remove 方法删除。你可以使用 com.mongodb.client.MongoCollection 类中的 updateMany() 方法来更新集合中的文档。我们可以使用 com.mongodb.client.MongoCollection 类中的 find() 方法来获取集合中的所有文档。本实例中 Mongo 数据库无需用户名密码验证。原创 2025-04-08 11:38:21 · 720 阅读 · 0 评论 -
MongoDB PHP 扩展
如果你想通过源码来编译扩展驱动。你必须手动编译源码包,这样做的好是最新修正的 bug 包含在源码包中。如果以上命令在XMPP或者MAMP中不起作用,你需要在 Github上下载兼容的预编译包。然后添加 extension=mongodb.so 配置到你的 php.ini 文件中。你可以在 Linux 中执行以下命令来安装 MongoDB 的 PHP 扩展驱动。你可以使用 autoconf 安装 MongoDB PHP 扩展驱动。你可以使用 Xcode 安装 MongoDB PHP 扩展驱动。原创 2025-04-08 15:39:57 · 490 阅读 · 0 评论 -
MongoDB PHP
collection->update(array("title"=>"MongoDB"), array('$set'=>array("title"=>"MongoDB 教程")));$collection->remove(array("title"=>"MongoDB 教程"), array("justOne" => true));// 连接默认主机和端口为:mongodb://localhost:27017。// 获取名称为 "test" 的数据库。// 获取名称为 "test" 的数据库。原创 2025-04-09 11:13:05 · 687 阅读 · 0 评论 -
PHP7 MongDB 安装与使用
bulk->insert(['x' => 1, 'name'=>'菜鸟教程', 'url' => 'http://www.runoob.com']);以上执行的命令中 php7 的安装目录为 /usr/local/php7/,如果你安装在其他目录,需要相应修改 pecl 与 php 命令的路径。['$set' => ['name' => '菜鸟工具', 'url' => 'tool.runoob.com']],原创 2025-04-09 11:14:55 · 705 阅读 · 0 评论 -
Node.js 连接 MongoDB
现在我们希望通过 $lookup 操作将 orders 集合中的 product_id 字段与 products 集合中的 _id 字段进行关联,获取每个订单中的产品详细信息。可以使用 find() 来查找数据, find() 可以返回匹配条件的所有数据。如果未指定条件,find() 返回集合中的所有数据。如果要设置指定的返回条数可以使用 limit() 方法,该方法只接受一个参数,指定了返回的条数。排序 使用 sort() 方法,该方法接受一个参数,规定是升序(1)还是降序(-1)。原创 2025-04-09 11:23:05 · 791 阅读 · 0 评论 -
MongoDB 关系
MongoDB 的关系表示多个文档之间在逻辑上的相互联系。文档间可以通过嵌入和引用来建立联系。接下来我们来考虑下用户与用户地址的关系。一个用户可以有多个地址,所以是一对多的关系。原创 2025-04-09 11:24:33 · 516 阅读 · 0 评论 -
MongoDB 数据库引用
考虑这样的一个场景,我们在不同的集合中 (address_home, address_office, address_mailing, 等)存储不同的地址(住址,办公室地址,邮件地址等)。DBRef 字段指定了引用的地址文档是在 runoob 数据库下的 address_home 集合,id 为 534009e4d852427820000002。这样,我们在调用不同地址时,也需要指定集合,一个文档从多个集合引用文档,我们应该使用 DBRefs。原创 2025-04-09 11:26:12 · 378 阅读 · 0 评论 -
MongoDB 覆盖索引查询
5.0 之前版本可以使用 db.collection.ensureIndex() ,但 ensureIndex() 在 5.0 版本后已被移除,使用 createIndex() 代替。也就是说,对于上述查询,MongoDB的不会去数据库文件中查找。相反,它会从索引中提取数据,这是非常快速的数据查询。由于我们的索引中不包括 _id 字段,_id在查询中会默认返回,我们可以在MongoDB的查询结果集中排除它。原创 2025-04-09 11:27:37 · 282 阅读 · 0 评论 -
MongoDB 查询分析
虽然MongoDB查询优化器一般工作的很不错,但是也可以使用 hint 来强制 MongoDB 使用一个指定的索引。这种方法某些情形下会提升性能。一个有索引的 collection 并且执行一个多字段的查询(一些字段已经索引了)。explain 操作提供了查询信息,使用索引及查询统计等。有利于我们对索引的优化。原创 2025-04-09 11:28:46 · 900 阅读 · 0 评论 -
MongoDB 原子操作
mongodb不支持事务,所以,在你的项目中应用时,要注意这点。无论什么设计,都不要要求mongodb保证数据的完整性。但是mongodb提供了许多原子操作,比如文档的保存,修改,删除等,都是原子操作。所谓原子操作就是要么这个文档保存到Mongodb,要么没有保存到Mongodb,不会出现查询到的文档没有保存完整的情况。原创 2025-04-09 11:30:10 · 464 阅读 · 0 评论 -
MongoDB 高级索引
考虑以下文档集合(users ):},"tags": ["music","cricket","blogs"],以上文档包含了 address 子文档和 tags 数组。原创 2025-04-09 11:31:48 · 232 阅读 · 0 评论 -
MongoDB 索引限制
如果文档的索引字段值超过了索引键的限制,MongoDB不会将任何文档转换成索引的集合。每个索引占据一定的存储空间,在进行插入,更新和删除操作时也需要对索引进行操作。从2.6版本开始,如果现有的索引字段的值超过索引键的限制,MongoDB中不会创建索引。如果索引的大小大于内存的限制,MongoDB会删除一些索引,这将导致性能下降。由于索引是存储在内存(RAM)中,你应该确保该索引的大小不超过内存的限制。所以,检测你的语句是否使用索引是一个好的习惯,可以用explain来查看。原创 2025-04-09 11:32:14 · 119 阅读 · 0 评论 -
MongoDB ObjectId
在前面几个章节中我们已经使用了MongoDB 的对象 Id(ObjectId)。在本章节中,我们将了解的ObjectId的结构。MongoDB中存储的文档必须有一个"_id"键。这个键的值可以是任何类型的,默认是个ObjectId对象。在一个集合里面,每个文档都有唯一的"_id"值,来确保集合里面每个文档都能被唯一标识。MongoDB采用ObjectId,而不是其他比较常规的做法(比如自动增加的主键)的主要原因,因为在多个 服务器上同步自动增加主键值既费力还费时。原创 2025-04-09 11:32:58 · 212 阅读 · 0 评论