搜索
首页数据库MongoDB通俗讲解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
MongoDB关闭了吗?检查索赔MongoDB关闭了吗?检查索赔Apr 29, 2025 am 12:10 AM

不,mongodbisnotshutdown.itcontinuestothrivewithsteadygrowth,andexTingUserBase,andongoingDevelopment.thecompany'sssuccesswithmongodbatlasanditsvibrantcibrantcornityfibrantCommunityFurantCommumnityFurtherateInteMonterateDemonstrateDitalityAntalityAndFututureProperpects。

MongoDB:解决问题并解决潜在问题MongoDB:解决问题并解决潜在问题Apr 28, 2025 am 12:19 AM

MongoDB的常见问题包括数据一致性、查询性能和安全性。解决方案分别是:1)使用写关注和读关注机制确保数据一致性;2)通过索引、聚合管道和分片优化查询性能;3)采用加密、认证和审计措施提升安全性。

在MongoDB和Oracle之间进行选择:用例和注意事项在MongoDB和Oracle之间进行选择:用例和注意事项Apr 26, 2025 am 12:28 AM

MongoDB适合处理大规模、非结构化数据,Oracle适合需要严格数据一致性和复杂查询的场景。1.MongoDB提供灵活性和可扩展性,适用于多变数据结构。2.Oracle提供强大的事务支持和数据一致性,适用于企业级应用。选择时需考虑数据结构、扩展性和性能需求。

MongoDB的未来:数据库的状态MongoDB的未来:数据库的状态Apr 25, 2025 am 12:21 AM

MongoDB的未来充满可能性:1.云原生数据库发展,2.人工智能与大数据领域发力,3.安全性与合规性提升。MongoDB在技术创新、市场地位和未来发展方向上不断前进和突破。

MongoDB和NOSQL革命MongoDB和NOSQL革命Apr 24, 2025 am 12:07 AM

MongoDB是一种文档型NoSQL数据库,旨在提供高性能、易扩展和灵活的数据存储解决方案。1)它使用BSON格式存储数据,适合处理半结构化或非结构化数据。2)通过分片技术实现水平扩展,支持复杂查询和数据处理。3)在使用时需注意索引优化、数据建模和性能监控,以发挥其优势。

了解MongoDB的状态:解决问题了解MongoDB的状态:解决问题Apr 23, 2025 am 12:13 AM

MongoDB适合项目需求,但需优化使用。1)性能:优化索引策略和使用分片技术。2)安全性:启用身份验证和数据加密。3)可扩展性:使用副本集和分片技术。

MongoDB vs. Oracle:为您的需求选择正确的数据库MongoDB vs. Oracle:为您的需求选择正确的数据库Apr 22, 2025 am 12:10 AM

MongoDB适合非结构化数据和高扩展性需求,Oracle适合需要严格数据一致性的场景。1.MongoDB灵活存储不同结构数据,适合社交媒体和物联网。2.Oracle结构化数据模型确保数据完整性,适用于金融交易。3.MongoDB通过分片横向扩展,Oracle通过RAC纵向扩展。4.MongoDB维护成本低,Oracle维护成本高但支持完善。

MongoDB:现代应用程序面向文档的数据MongoDB:现代应用程序面向文档的数据Apr 21, 2025 am 12:07 AM

MongoDB通过其灵活的文档模型和高性能的存储引擎改变了开发方式。其优势包括:1.无模式设计,允许快速迭代;2.文档模型支持嵌套和数组,增强数据结构灵活性;3.自动分片功能支持水平扩展,适用于大规模数据处理。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

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

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)