mongoDB 常用命令 (1)

185 阅读4分钟

查看数据库列表 show dbs

查看当前数据库 db

创建/切换数据库 use <DATABASE_NAME>

数据库命名限制[来自官方文档]

  • 在数据库名称中使用大小写

    不要依赖大小写来区分数据库。例如,您不能使用名称为salesData和 的两个数据库SalesData

    在 MongoDB 中创建数据库后,在引用它时必须使用一致的大小写。例如,如果您创建 salesData数据库,请不要使用替代大写形式来引用它,例如salesdataor SalesData

  • Windows 数据库名称的限制

    对于在 Windows 上运行的 MongoDB 部署,数据库名称不能包含以下任何字符:

    /. "$*<>:|?
    

    此外,数据库名称不能包含空字符。

  • Unix 和 Linux 系统的数据库名称限制

    对于在 Unix 和 Linux 系统上运行的 MongoDB 部署,数据库名称不能包含以下任何字符:

    /. "$
    

    此外,数据库名称不能包含空字符。

  • 数据库名称的长度

    数据库名称不能为空,并且必须少于 64 个字符。

  • 集合名称的限制

    集合名称应以下划线或字母字符开头,并且不能

    • 包含$.
    • 是一个空字符串(例如"")。
    • 包含空字符。
    • 以前缀开头system.。(保留供内部使用。)

    如果您的集合名称包含特殊字符(例如下划线字符)或以数字开头,则要访问该集合,请使用db.getCollection()方法在 mongosh或一个您的驱动程序的类似方法.

    命名空间长度:

    • 为了功能兼容性版本设置为"4.4"或更大,MongoDB 将非分片集合和视图的限制提高到 255 字节,分片集合提高到 235 字节。对于集合或视图,命名空间包括数据库名称、点 ( .) 分隔符和集合/视图名称(例如<database>.<collection>),
    • 为了功能兼容性版本设置为"4.2"或更早,非分片集合和视图命名空间的最大长度保持为 120 字节,分片集合为 100 字节。
  • 字段名称限制

    • 字段名称不能包含该null字符。
    • 服务器允许存储包含点 ( .) 和美元符号 ( $) 的字段名称。
    • MongodB 5.0 添加了对在字段名称中使用 ( $) 和 ( )的改进支持。.有一些限制。看 字段名称注意事项更多细节。
  • _id 的限制

    字段名_id保留用作主键;它的值在集合中必须是唯一的,是不可变的,并且可以是数组以外的任何类型。如果_id包含子字段,则子字段名称不能以 ( $) 符号开头。

命名警告

MongoDB 不支持重复的字段名称

MongoDB 查询语言在具有重复字段名称的文档上未定义。BSON 构建器可能支持创建具有重复字段名称的 BSON 文档。虽然 BSON 构建器可能不会抛出错误,但即使插入成功,也不支持将这些文档插入 MongoDB。例如,通过 MongoDB 驱动程序插入具有重复字段名称的 BSON 文档可能会导致驱动程序在插入之前静默删除重复值。

$美元符号 ( ) 和句点 ( .)的进出口问题

从 MongoDB 5.0 开始,文档字段名称可以以美元 ( $) 为前缀,并且可以包含句点 ( .)。然而, mongoimportmongoexport在某些使用这些字符的字段名称的情况下,可能无法按预期工作。

MongoDB 扩展 JSON v2 无法区分类型包装器和恰好与类型包装器同名的字段。不要在相应的 BSON 表示可能包含美元 ( $) 前缀键的上下文中使用扩展 JSON 格式。这 数据库参考机制是这个一般规则的一个例外。

使用也有限制mongoimport和 mongoexport.在字段名称中带有句点 ( )。由于 CSV 文件使用句点 ( .) 来表示数据层次结构,.因此字段名称中的句点 ( ) 将被误解为嵌套级别。

美元符号 ( $) 和句点 ( .)可能导致数据丢失

使用美元 ( $) 前缀的字段名称或包含句点 ( .) 的字段名称时,如果这些字段名称与未确认的写入 (写关注 w=0) 在早于 MongoDB 5.0 的服务器上。

跑步时插入更新, 和 查找并修改 命令,与 5.0 兼容的驱动程序删除了对使用字段名称以美元 ( $) 为前缀或包含句点 ( .) 的文档的限制。这些字段名称在早期驱动程序版本中生成客户端错误。

无论驱动程序连接到的服务器版本如何,这些限制都会被删除。如果 5.0 驱动程序将文档发送到较旧的服务器,则该文档将被拒绝而不会发送错误。

命名空间

  • 命名空间长度

    • 为了功能兼容性版本设置为"4.4"或更大,MongoDB 将非分片集合和视图的限制提高到 255 字节,分片集合提高到 235 字节。对于集合或视图,命名空间包括数据库名称、点 ( .) 分隔符和集合/视图名称(例如<database>.<collection>),
    • 为了功能兼容性版本设置为"4.2"或更早,非分片集合和视图命名空间的最大长度保持为 120 字节,分片集合为 100 字节。

删除数据库

1、使用 use 命令切换到要删除的数据库

2、使用 db.dropDatabase() 删除当前数据库

创建集合

如果不存在集合 db.myNewGather.insert( { x: 1 } )

或者用MongoDB提供的 db.createCollection()

查看集合 show collections

删除集合 db.集合名称.drop()

BSON 类型

BSON是一种二进制序列化格式,用于在 MongoDB 中存储文档和进行远程过程调用。BSON 规范位于bsonspec.org.

每种 BSON 类型都有整数和字符串标识符,如下表所示:

类型数字别名笔记
Double1"double"
String2"string"
Object3"object"
Array4"array"
Binary data5"binData"
Undefined6"undefined"Deprecated.
ObjectId7"objectId"
Boolean8"bool"
Date9"date"
Null10"null"
Regular Expression11"regex"
DBPointer12"dbPointer"Deprecated.
JavaScript13"javascript"
Symbol14"symbol"Deprecated.
JavaScript code with scope15"javascriptWithScope"Deprecated in MongoDB 4.4.
32-bit integer16"int"
Timestamp17"timestamp"
64-bit integer18"long"
Decimal12819"decimal"New in version 3.4.
Min key-1"minKey"
Max key127"maxKey"

本文正在参加「技术专题19期 漫谈数据库技术」活动