开源框架:MongoDB—常用命令

简介: 本案例需求为将专栏文章评论数据存储至MongoDB数据库articledb的comment集合中,涵盖字段如_id、articleid、content等,详述数据库与集合的创建、删除操作,并介绍文档的单条及批量插入方法,遵循BSON格式规范。

一、案例需求背景

核心场景:将专栏文章评论数据存储到 MongoDB,数据库为articledb,核心集合(表)为comment,字段结构如下:

字段名称 字段含义 字段类型 备注
_id 主键 ID ObjectId 或 String MongoDB 默认主键
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 数据库名称(数据库不存在则自动创建)
  • 示例:use articledb(创建并切换到 articledb 数据库)
  • 查看所有数据库:show dbsshow databases
  • 查看当前使用的数据库:db
  • 关键说明:
  • 集合(表)需插入文档(记录)后才会真正创建,空数据库不会显示在show dbs结果中。
  • 默认数据库为test,未选择数据库时数据存于test
  • 数据库命名规范:UTF-8 字符串、非空、不含空格 /.$//\0、全小写、最多 64 字节。
  • 保留数据库:
  • admin:权限根数据库,用户在此库授权后继承所有库权限。
  • local:数据不复制,仅存本地服务器数据。
  • config:分片集群时使用,存储分片配置。

2. 数据库删除

  • 语法:db.dropDatabase()(仅删除已持久化的数据库)

三、集合操作

集合类似关系型数据库的 “表”,支持显式创建和隐式创建。

1. 集合创建

  • 显式创建(了解即可):db.createCollection("集合名称")
  • 示例:db.createCollection("mycollection")
  • 隐式创建(推荐):向不存在的集合插入文档时,自动创建集合(无需手动创建)。
  • 查看当前库集合:show collectionsshow tables

2. 集合命名规范

  • 非空字符串,不含 \0(空字符)。
  • 不能以system.开头(系统集合保留前缀)。
  • 避免含$(仅系统生成集合可能包含)。

3. 集合删除

  • 语法:db.集合名称.drop()db.collection.drop()
  • 返回值:删除成功返回true,失败返回false
  • 示例:db.mycollection.drop()(删除 mycollection 集合)

四、文档基本操作(插入)

文档类似关系型数据库的 “记录”,采用 BSON 格式(类似 JSON),核心插入操作如下:

1. 单个文档插入

  • 语法:db.collection.insert(<文档>, {writeConcern: <配置>, ordered: <布尔值>})
  • 也可使用save()方法。
  • 示例(插入评论数据):
db.comment.insert({
  "articleid": "100000",
  "content": "今天天气真好,阳光明媚",
  "userid": "1001",
  "nickname": "Rose",
  "createdatetime": new Date(),
  "likenum": NumberInt(10),
  "state": null
})
  • 关键要点:
  • 集合不存在时自动隐式创建。
  • 数字默认是 double 类型,存整型需用NumberInt(整型值)
  • 插入当前日期用new Date()
  • 未指定_id时,MongoDB 自动生成主键。
  • 字段无值可设为null,或直接省略该字段。

2. 批量文档插入

  • 语法:db.collection.insertMany([<文档1>, <文档2>, ...], {writeConcern: <配置>, ordered: <布尔值>})
  • 示例(批量插入多条评论):
db.comment.insertMany([
  {"_id": "1", "articleid": "100001", "content": "健康很重要,一杯温水幸福你我他", "userid": "1002", "nickname": "相忘于江湖", "createdatetime": new Date("2019-08-05T22:08:15.522Z"), "likenum": NumberInt(1000), "state": "1"},
  {"_id": "2", "articleid": "100001", "content": "我夏天空腹喝凉开水,冬天喝温开水", "userid": "1005", "nickname": "伊人憔悴", "createdatetime": new Date("2019-08-05T23:58:51.485Z"), "likenum": NumberInt(888), "state": "1"}
])

3. 文档命名与格式注意事项

  • 键 / 值对有序,区分类型和大小写。
  • 文档不能有重复键,键为 UTF-8 字符串。
  • 键命名规范:不含 \0,.$需特殊场景使用,下划线_开头的键为保留键(非强制)。
相关文章
|
4天前
|
存储 JavaScript 前端开发
JavaScript基础
本节讲解JavaScript基础核心知识:涵盖值类型与引用类型区别、typeof检测类型及局限性、===与==差异及应用场景、内置函数与对象、原型链五规则、属性查找机制、instanceof原理,以及this指向和箭头函数中this的绑定时机。重点突出类型判断、原型继承与this机制,助力深入理解JS面向对象机制。(238字)
|
3天前
|
云安全 人工智能 安全
阿里云2026云上安全健康体检正式开启
新年启程,来为云上环境做一次“深度体检”
1548 6
|
5天前
|
安全 数据可视化 网络安全
安全无小事|阿里云先知众测,为企业筑牢防线
专为企业打造的漏洞信息收集平台
1322 2
|
5天前
|
缓存 算法 关系型数据库
深入浅出分布式 ID 生成方案:从原理到业界主流实现
本文深入探讨分布式ID的生成原理与主流解决方案,解析百度UidGenerator、滴滴TinyID及美团Leaf的核心设计,涵盖Snowflake算法、号段模式与双Buffer优化,助你掌握高并发下全局唯一ID的实现精髓。
337 160
|
5天前
|
人工智能 自然语言处理 API
n8n:流程自动化、智能化利器
流程自动化助你在重复的业务流程中节省时间,可通过自然语言直接创建工作流啦。
397 6
n8n:流程自动化、智能化利器
|
7天前
|
人工智能 API 开发工具
Skills比MCP更重要?更省钱的多!Python大佬这观点老金测了一周终于懂了
加我进AI学习群,公众号右下角“联系方式”。文末有老金开源知识库·全免费。本文详解Claude Skills为何比MCP更轻量高效:极简配置、按需加载、省90% token,适合多数场景。MCP仍适用于复杂集成,但日常任务首选Skills。推荐先用SKILL.md解决,再考虑协议。附实测对比与配置建议,助你提升效率,节省精力。关注老金,一起玩转AI工具。
|
14天前
|
机器学习/深度学习 安全 API
MAI-UI 开源:通用 GUI 智能体基座登顶 SOTA!
MAI-UI是通义实验室推出的全尺寸GUI智能体基座模型,原生集成用户交互、MCP工具调用与端云协同能力。支持跨App操作、模糊语义理解与主动提问澄清,通过大规模在线强化学习实现复杂任务自动化,在出行、办公等高频场景中表现卓越,已登顶ScreenSpot-Pro、MobileWorld等多项SOTA评测。
1522 7
|
4天前
|
Linux 数据库
Linux 环境 Polardb-X 数据库 单机版 rpm 包 安装教程
本文介绍在CentOS 7.9环境下安装PolarDB-X单机版数据库的完整流程,涵盖系统环境准备、本地Yum源配置、RPM包安装、用户与目录初始化、依赖库解决、数据库启动及客户端连接等步骤,助您快速部署运行PolarDB-X。
244 1
Linux 环境 Polardb-X 数据库 单机版 rpm 包 安装教程
|
8天前
|
人工智能 前端开发 API
Google发布50页AI Agent白皮书,老金帮你提炼10个核心要点
老金分享Google最新AI Agent指南:让AI从“动嘴”到“动手”。Agent=大脑(模型)+手(工具)+协调系统,可自主完成任务。通过ReAct模式、多Agent协作与RAG等技术,实现真正自动化。入门推荐LangChain,文末附开源知识库链接。
662 119