首页 数据库 MongoDB 通俗讲解MongoDB数据库、集合、文档的概念

通俗讲解MongoDB数据库、集合、文档的概念

Aug 19, 2020 am 10:27 AM
mongodb

对于关系型数据库,我们知道,数据库中有多个表,数据表里有多行数据。而对于MongoDB来说,则是数据库里有多个集合,集合里由多个文档。

数据库

MongoDB的数据库概念和Mysql的差不多,每个数据库都可以设置独立的权限。

首先,我们来看如何创建数据库,MongoDB对于数据库名称也是有限制的,只能使用数字或字母,另外数据库名称是区分大小写的,一般的,我们都会使用小写的。另外,有一些关键字也是不可以使用的,如:admin、config、local等。

在MongoDB中,不需要显示的创建数据库,只需要选择use dbName即可,当数据库不存在的时候,会自动为我们创建。

> use huoying
switched to db huoying

当使用db命令时,会显示当前使用的数据库名。

> db
huoying

查看当前所有数据库,使用show dbs;

> show dbs;
admin    0.000GB
config   0.000GB
huoying  0.000GB
local    0.000GB

集合

MongoDB的集合类似于Mysql中的表,集合是有多个文档组成的。但集合不像表那样有字段的限制,集合下面的文档可以是各种各样。比如,一个集合下面可能有下面两种文档:

{"name":"gwx", "age" : 30},
{"id":1, "score":100}

虽然,集合对文档是没有限制的,但是为了数据管理的方便,我们一般都将相关文档放在一个集合里。

创建集合,分为直接创建和隐式创建。

# 显示的创建集合
> db.createCollection('huoying')
{ "ok" : 1 }

隐式创建集合,直接创建文档时,若集合不存在,会先创建集合

文档

最后,我们来看看文档。文档的数据类型类似于php中的关联数据、或JavaScript中的对象。

注意,文档是区分大小写以及数据类型的。看下面例子:

# 下面两个是不一样的文档,他们的数据类型不一样
{"name":30}
{"name":"30"}

# 下面两个是不一样的文档,键名不一样
{"name":30}
{"NAME":30}

新增文档

使用命令db.集合名.insertOne(文档数据),可以向指定集合插入一篇文档。若该集合不存在时,则会隐式创建该集合。

> db.users.insertOne({"name":"gwx", "age":29})
{
 "acknowledged" : true,
 "insertedId" : ObjectId("5f0cfdbb7688816db4d031bc")
}
> db.users.find()
{ "_id" : ObjectId("5f0cfdbb7688816db4d031bc"), "name" : "gwx", "age" : 29 }
>

修改文档

使用update来更新文档内容,update需要两个参数,第一个是限定条件,用来查找指定的文档,第二个是新文档的内容。

> db.users.update({name:"gwx"}, {name:"monkeyking", age:500})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.users.find()
{ "_id" : ObjectId("5f0cfdbb7688816db4d031bc"), "name" : "monkeyking", "age" : 500 }

删除文档

使用remove来删除文档

> db.users.remove({age:500})
WriteResult({ "nRemoved" : 1 })

以上是通俗讲解MongoDB数据库、集合、文档的概念的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Stock Market GPT

Stock Market GPT

人工智能驱动投资研究,做出更明智的决策

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

MongoDB的免费层产品(例如在Atlas上)有什么局限性? MongoDB的免费层产品(例如在Atlas上)有什么局限性? Jul 21, 2025 am 01:20 AM

MongoDBAtlas的免费层级存在性能、可用性、使用限制及存储等多方面局限,不适合生产环境。首先,其提供的M0集群共享CPU资源,仅512MB内存和最高2GB存储,难以支撑实时性能或数据增长;其次,缺乏高可用架构如多节点副本集和自动故障转移,维护或故障期间可能导致服务中断;再者,每小时读写操作受限,连接数和带宽也受限制,轻度流量即可触发限流;最后,备份功能受限,存储上限易因索引或文件存储迅速耗尽,因此仅适用于演示或小型个人项目。

了解MongoDB存储引擎:Wiredtiger Deep Dive 了解MongoDB存储引擎:Wiredtiger Deep Dive Aug 04, 2025 am 05:49 AM

WiredTigerisMongoDB’sdefaultstorageenginesinceversion3.2,providinghighperformance,scalability,andmodernfeatures.1.Itusesdocument-levellockingandMVCCforhighconcurrency,allowingreadsandwritestoproceedwithoutblockingeachother.2.DataisstoredusingB-trees,

如何用PHP构建日志管理系统 PHP日志采集与分析工具 如何用PHP构建日志管理系统 PHP日志采集与分析工具 Jul 25, 2025 pm 08:48 PM

选择日志记录方式:初期可用PHP内置error_log(),项目扩大后务必切换至Monolog等成熟库,支持多handler和日志级别,确保日志含时间戳、级别、文件行号及错误详情;2.设计存储结构:小量日志可文件存储,大量或需分析则选数据库,结构化数据用MySQL/PostgreSQL,半结构化/非结构化推荐Elasticsearch Kibana,同时制定备份与定期清理策略;3.开发分析界面:应具备搜索、过滤、聚合、可视化功能,可直接集成Kibana,或用PHP框架 图表库自研,注重界面简洁易

MongoDB的交易是什么,它们如何为多文档操作提供酸性? MongoDB的交易是什么,它们如何为多文档操作提供酸性? Jul 31, 2025 am 06:25 AM

MongoDBintroducedmulti-documenttransactionsinversion4.0,enablingatomicoperationsacrosscollectionsforstrongconsistency.Transactionsallowmultipleread/writeoperationstobegroupedasasingleunit,eitherallsucceedingorfailingtogether.Theyaresupportedinreplica

如何为PHP环境配置MongoDB支持 PHP连接Mongo数据库的设置 如何为PHP环境配置MongoDB支持 PHP连接Mongo数据库的设置 Jul 23, 2025 pm 06:54 PM

要配置PHP环境以支持MongoDB,核心步骤是安装并启用MongoDB的PHP驱动,使PHP应用能够与MongoDB数据库通信。1.安装MongoDBPHP驱动,推荐使用PECL安装,若无PECL则需先安装PHP开发包及相关编译工具;2.编辑php.ini文件,添加extension=mongodb.so(或.dll)以启用扩展;3.重启Web服务器或PHP-FPM服务使配置生效;4.通过phpinfo()或php-m验证扩展是否加载成功。常见问题包括PECL命令缺失、编译错误、php.ini

如何优化MongoDB中的查询性能 如何优化MongoDB中的查询性能 Sep 17, 2025 am 08:59 AM

useProperIndexesonquery,sort和procottionfields,FavoringCompoundExeswithequealityBeforErangeFields,andAvoidOver-indexing; 2. 2.optimizequerizeByprojectingonlyneedeedeedeDedFields,避免使用index-blockingoperatorslike $ whereAndLeadLeadLeading-wildcardcardCardCardCardCardcardUdcardUgex $ regex&regex&regex&regex&imlimitiing $ iverity $ i

在Windows上安装MongoDB 在Windows上安装MongoDB Aug 20, 2025 pm 03:06 PM

DownloadMongoDBCommunityEditionfromtheofficialwebsite,selectingtheWindowsx64MSIpackage.2.RunthedownloadedMSIinstaller,chooseCompleteSetup,installMongoDBasaservice,andoptionallyskipMongoDBCompass.3.CreatethedatadirectorybymakingaC:\data\dbfolderusingF

在Mac上设置MongoDB 在Mac上设置MongoDB Aug 01, 2025 am 03:41 AM

installhomebrewifnotalreadyinstall,thenrunbrewtapmongodb/brewandbrewinstallmongodb-communitytoinstallmongodb.2.starttarttheservicewithbrewservicewithbrewservicesstartmongodb-com--c---------------------

See all articles