【MongoDB】一文带你快速掌握MongoDB数据库和集合基础操作


前言

为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。
(博客的参考源码以及可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)

一、案例需求

存放文章评论的数据存放到MongoDB中,数据结构参考如下:

数据库:articledb

专栏文章评论 comment
字段名称 字段含义 字段类型 备注
_id ID ObjectId或String Mongo的主键的字段
articleid 文章ID String
content 评论内容 String
userid 评论人ID String
nickname 评论人昵称 String
createdatetime 评论的日期时间 Date
likenum 点赞数 Int32
replynum 回复数 Int32
state 状态 String 0: 不可见; 1:可见;
parentid 上级ID String 如果为0表示文章的顶级评论

二、数据库操作

1. 选择和创建数据库

  • 选择和创建数据库的语法格式:

use 数据库名称

  • 如果数据库不存在则自动创建,例如,以下语句创建 spitdb 数据库:

use articledb

  • 查看有权限查看的所有的数据库命令

show dbs

show databases

在这里插入图片描述

  • 另外:数据库名可以是满足以下条件的任意UTF-8字符串。
  1. 不能是空字符串(“”)
  2. 不得含有’ '(空格)、.、$、/、\和\0 (空字符)
  3. 应全部小写
  4. 最多64字节
  • 有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。
  1. admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器
  2. local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
  3. config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息

注意: 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建

2. 数据库的删除

  • MongoDB 删除数据库的语法格式如下

db.dropDatabase()

在这里插入图片描述

提示:主要用来删除已经持久化的数据库

三、集合操作

集合,类似关系型数据库中的表。可以显示的创建,也可以隐式的创建

1. 集合的显式创建(了解)

  • 基本语法格式:

db.createCollection(name)

  • 参数说明:
  1. name: 要创建的集合名称
  2. 例如:创建一个名为 mycollection 的普通集合
    db.createCollection(“mycollection”)

在这里插入图片描述

  • 查看当前库中的表:show tables命令

show collections

show tables

在这里插入图片描述

  • 集合的命名规范:
  1. 集合名不能是空字符串""
  2. 集合名不能含有\0字符(空字符),这个字符表示集合名的结尾
  3. 集合名不能以"system."开头,这是为系统集合保留的前缀
  4. 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$

2. 集合的隐式创建

当向一个集合中插入一个文档的时候,如果集合不存在,则会自动创建集合。

提示:通常我们使用隐式创建文档即可

3. 集合的删除

  • 集合删除语法格式如下:

db.collection.drop()

db.集合.drop()

  • 返回值

如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。例如:要删除mycollection集合
db.mycollection.drop()

在这里插入图片描述

总结

欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)

猜你喜欢

转载自blog.csdn.net/HHX_01/article/details/132257543