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

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

相关推荐
qq_33456355几秒前
Layui layer弹窗如何实现居中显示
jvm·数据库·python
weixin_5806140014 分钟前
模型持久化不会提升准确率:揭秘训练集误用导致的“虚假精度”陷阱
jvm·数据库·python
2401_8877245015 分钟前
Layui弹出层layer.tab如何监听标签页切换的具体序号
jvm·数据库·python
2501_9142459330 分钟前
构建 Go CLI 应用的最佳实践:纯 Go 交互式命令行库选型与使用指南
jvm·数据库·python
m0_5145205732 分钟前
Go语言变量如何声明和使用_Go语言变量定义完整教程【通俗】
jvm·数据库·python
weixin_5860614644 分钟前
CSS Grid布局如何解决图片溢出网格单元_设置object-fit与网格尺寸.txt
jvm·数据库·python
秋91 小时前
数据库对比同步工具,快速比较开发库与生产库直接的差别,并自动生成存在差异的sql语句
数据库·oracle
大嘴皮猴儿1 小时前
从零开始学商品图翻译:小白也能快速掌握的多语言文字处理与上架技巧
大数据·ide·人工智能·macos·新媒体运营·xcode·自动翻译
雷工笔记1 小时前
《为什么 10 倍增长比 2 倍更容易》读书笔记:反内卷的指数级增长破局法
大数据
captain_AIouo1 小时前
OZON航海引领者Captain AI指引运营新航向
大数据·人工智能·经验分享·aigc