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博客

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

相关推荐
weelinking3 小时前
【产品】12_接入数据库——让数据永久保存
jvm·数据库·python·react.js·数据挖掘·前端框架·产品经理
智慧景区与市集主理人3 小时前
巨有科技会员积分系统|深耕私域存量,破解景区复购增收难题
大数据·科技
稳联技术老娜3 小时前
DeviceNet主站怎么连接西门子PLC,Profinet网关配置手册(那智机器人)
服务器·网络·数据库
这个DBA有点耶4 小时前
云上运维新挑战:当数据库不再“看得见摸得着”
数据库·sql·程序人生·云原生·运维开发·学习方法·dba
AskHarries5 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
Litluecat5 小时前
2026年6月1日科技热点新闻
大数据·人工智能·科技·推荐·热点·新闻·每日
消失在人海中5 小时前
oracle 数据库多表关联查询
服务器·数据库·oracle
九皇叔叔5 小时前
PostgreSQL/openGauss pg_stats 视图从入门到精通:统计信息、执行计划与慢 SQL 优化实战
数据库·sql·postgresql
志栋智能5 小时前
AI驱动无代码:降低巡检超自动化的门槛
大数据·运维·网络·人工智能·自动化
代码匠心6 小时前
从零开始学Flink:Flink CDC 入门
大数据·数据仓库·flink