MongoDB操作_数据库_集合

..........................................................................................................................................................

三、MongoDB操作

3.1 数据库操作

一个mongodb中可以建立多个数据库。

MongoDB的默认数据库为"test",该数据库存储在data目录中。

MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。

show dbs

Go 复制代码
#显示所有数据的列表
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。

  • admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。

  • local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合

  • config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

db

复制代码
#显示当前数据库对象或集合
> db
test

use

复制代码
#连接到一个指定的数据库,没有则创建
> use local
local

use可创建数据库

复制代码
> use mydb
switched to db mydb
> db
mydb
> show dbs  #只有当真正有文档数据写入时才会显示
admin   0.000GB
config  0.000GB
local   0.000GB

可以看到,我们刚创建的数据库 mydb并不在数据库的列表中, 要显示它,我们需要向 mydb 数据库插入一些数据。

复制代码
> db.mydb.insert({"name":"goudan"})   #mydb是集合名称,没有则会自动创建
WriteResult({ "nInserted" : 1 })
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
mydb    0.000GB

db.dropDatabase()删除当前数据库

复制代码
#删除当前数据库,默认为 test,可以使用 db 命令查看当前数据库名
> db
mydb
> db.dropDatabase()
{ "dropped" : "mydb", "ok" : 1 }
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
> db   #任然在当前mydb中
mydb
3.2 集合操作

集合就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理系统:Relational Database Management System)中的表格。

集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

比如,我们可以将以下不同数据结构的文档插入到集合中:

复制代码
{"id":1}
{"id":1,"name":"goudan"}
{"id":1,"name":"goudan", "address":"beijing"}

当第一个文档插入时,集合就会被创建。

db.createCollection(name, options)

参数说明:

  • name: 要创建的集合名称

  • options: 可选参数, 指定有关内存大小及索引的选项。options 如下参数: 在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。

字段 类型 描述
capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true 时,必须指定 size 参数。
autoIndexId 布尔 3.2 之后不再支持该参数。(可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size 数值 (可选)为固定集合指定一个最大值,即字节数。 如果 capped 为 true,也需要指定该字段。
max 数值 (可选)指定固定集合中包含文档的最大数量。
复制代码
> use mydb
switched to db mydb
> db.createCollection("test")
{ "ok" : 1 }
> db.createCollection("myTbl", { capped : true, autoIndexId : true, size:6142800, max : 10000 })
{
    "note" : "The autoIndexId option is deprecated and will be removed in a future release",
    "ok" : 1
}

show collectionsshow tables

复制代码
> show collections
myTable
myTbl

db.collection.drop()

复制代码
#如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。
> db.myTbl.drop()
true 

..........................................................................................................................................................

Guff_hys_python数据结构,大数据开发学习,python实训项目-CSDN博客

..........................................................................................................................................................

相关推荐
武子康16 小时前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
大大大大晴天18 小时前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
武子康3 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1774 天前
《从零搭建NestJS项目》
数据库·typescript
武子康4 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
DianSan_ERP4 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet