MongoDB常用命令

简介: 本文介绍了MongoDB中针对文章评论数据的数据库、集合和文档操作方法。包括数据库的创建与删除、集合的显式与隐式创建及删除、文档的增删改查及高级查询操作(如分页、排序、统计),适用于快速掌握MongoDB基础操作。

一、数据库操作(articledb)
数据库是 MongoDB 中存储集合的容器,用于存放文章评论数据的数据库为articledb。

  1. 选择与创建数据库
    语法:use 数据库名称
    若数据库不存在,执行该命令会自动创建(但需插入数据后才会真正持久化)。
    示例:use articledb(切换或创建articledb数据库)。
    查看数据库:
    查看所有有权限的数据库:show dbs 或 show databases。
    查看当前使用的数据库:db。
    命名规范:
    不能包含空格、.、$、/、\、\0(空字符),需小写,最多 64 字节。
    保留数据库:admin(权限根数据库)、local(本地不可复制数据)、config(分片配置)。
  2. 删除数据库
    语法:db.dropDatabase()
    仅删除当前使用的数据库,且需数据库已持久化(即存在数据)。
    二、集合操作(类似关系型数据库的 “表”)
    集合用于存储文章评论的文档(单条评论数据),可显式或隐式创建。
  3. 创建集合
    显式创建(了解即可):
    语法:db.createCollection("集合名称")
    示例:db.createCollection("comment")(创建存储评论的comment集合)。
    隐式创建(推荐):
    向不存在的集合插入文档时,集合会自动创建。例如:db.comment.insert({...}) 会自动创建comment集合。
    查看集合:show collections 或 show tables(查看当前数据库中的所有集合)。
    命名规范:
    不能以system.开头(系统集合保留),不能包含\0或$(特殊场景除外),不能为空字符串。
  4. 删除集合
    语法:db.集合名称.drop()
    示例:db.comment.drop()(删除comment集合)。
    返回值:成功删除返回true,否则返回false。
    三、文档操作(类似关系型数据库的 “记录”)
    文档是 MongoDB 的基本数据单元,格式为 BSON(类似 JSON,支持更多数据类型),用于存储单条文章评论。
  5. 插入文档
    单条插入:
    语法:db.集合名称.insert(文档)
    示例:插入一条评论:
    javascript
    db.comment.insert({
    "articleid": "100000", // 文章ID
    "content": "今天天气真好", // 评论内容
    "userid": "1001", // 用户ID
    "nickname": "Rose", // 用户名
    "createdatetime": new Date(), // 评论时间(当前时间)
    "likenum": NumberInt(10), // 点赞数(整型)
    "state": null // 状态(未设置)
    })

说明:
若未指定_id,MongoDB 会自动生成 ObjectID 类型的主键。
整型需用NumberInt()声明,否则默认为 double 类型。
批量插入:
语法:db.集合名称.insertMany([文档1, 文档2, ...])
示例:批量插入多条评论(可指定_id):
javascript
db.comment.insertMany([
{"_id": "1", "articleid": "100001", "content": "评论1", ...},
{"_id": "2", "articleid": "100001", "content": "评论2", ...}
])

注意:若某条插入失败,已成功插入的文档不会回滚,可使用try...catch捕获异常。

  1. 查询文档
    基本查询:
    语法:db.集合名称.find(查询条件, 投影字段)
    示例:
    查询所有评论:db.comment.find() 或 db.comment.find({})。
    查询userid为1003的评论:db.comment.find({userid: "1003"})。
    查询第一条符合条件的评论:db.comment.findOne({userid: "1003"})(返回单个文档)。
    投影查询(指定返回字段):
    语法:find(条件, {字段1: 1, 字段2: 1, _id: 0})(1 表示显示,0 表示隐藏)。
    示例:查询userid=1003的评论,只显示userid和nickname,隐藏_id:
    javascript
    db.comment.find({userid: "1003"}, {userid: 1, nickname: 1, _id: 0})

  2. 更新文档
    语法:db.集合名称.update(查询条件, 更新内容, 选项)
    选项:multi: true(批量更新,默认只更第一条)、upsert: true(无匹配时插入新文档)。
    常用更新方式:
    局部修改(使用$set,只更新指定字段):
    示例:将_id=2的评论点赞数改为 889:
    javascript
    db.comment.update({_id: "2"}, {$set: {likenum: NumberInt(889)}})

批量修改:
示例:将所有userid=1003的用户名改为 “凯撒大帝”:
javascript
db.comment.update({userid: "1003"}, {$set: {nickname: "凯撒大帝"}}, {multi: true})

数值增减(使用$inc):
示例:将_id=3的评论点赞数 + 1:
javascript
db.comment.update({_id: "3"}, {$inc: {likenum: NumberInt(1)}})

覆盖修改(不推荐):直接替换文档(会删除未指定的字段)。

  1. 删除文档
    语法:db.集合名称.remove(删除条件)
    示例:
    删除_id=1的评论:db.comment.remove({_id: "1"})。
    删除所有评论(慎用):db.comment.remove({})。
  2. 高级查询(分页、排序、统计)
    统计查询:
    语法:db.集合名称.count(查询条件)
    示例:
    统计所有评论数:db.comment.count()。
    统计userid=1003的评论数:db.comment.count({userid: "1003"})。
    分页查询(skip()跳过前 N 条,limit()取 N 条):
    语法:db.集合名称.find().skip(跳过数量).limit(获取数量)
    示例:每页 2 条,查询第 2 页(跳过前 2 条,取 2 条):
    javascript
    db.comment.find().skip(2).limit(2)

排序查询(sort(),1 升序,-1 降序):
语法:db.集合名称.find().sort({字段1: 1, 字段2: -1})
示例:按userid降序、likenum升序排列:
javascript
db.comment.find().sort({userid: -1, likenum: 1})

执行顺序:sort() → skip() → limit()(与命令顺序无关)。

相关文章
|
存储 JSON NoSQL
3-MongoDB常用命令
MongoDB常用命令
592 2
|
NoSQL 数据可视化 MongoDB
Windows MongoDB的安装及配置图文说明(非常详细)
Windows MongoDB的安装及配置图文说明(非常详细)
1629 0
|
JSON NoSQL 安全
MongoDB的导入导出、备份恢复总结
这篇文章是关于MongoDB的导入导出、备份恢复操作的总结。
4632 4
|
6月前
|
存储 NoSQL Shell
MongoDB 安装与启动指南
本文档为MongoDB安装与启动指南,涵盖Windows及Linux系统的安装步骤、配置文件设置、服务启动与连接方法,以及服务停止操作。内容包括MongoDB下载、目录创建、命令行及配置文件启动方式,同时提供Shell连接、图形化工具Compass使用说明,并详解Linux环境下生产部署与防火墙设置,确保服务安全启动与关闭。
1087 0
|
5月前
|
NoSQL 数据挖掘 MongoDB
MongoDB常用命令小解析
MongoDB常用命令整理,涵盖数据库、集合、文档操作及索引管理、聚合查询、备份恢复等高级功能,助力高效数据库操作与管理。
649 0
|
9月前
|
存储 人工智能 供应链
AI Agent智能体:底层逻辑、原理与大模型关系深度解析·优雅草卓伊凡
AI Agent智能体:底层逻辑、原理与大模型关系深度解析·优雅草卓伊凡
2756 3
AI Agent智能体:底层逻辑、原理与大模型关系深度解析·优雅草卓伊凡
|
存储 应用服务中间件 开发工具
对象存储OSS-Python设置代理访问请求
通过 Python SDK 配置 nginx 代理地址请求阿里云 OSS 存储桶服务。示例代码展示了如何使用 RAM 账号进行身份验证,并通过代理下载指定对象到本地文件。
546 15
|
关系型数据库 数据库 数据安全/隐私保护
PostgreSQL基础之教你如何轻松管理用户角色与权限
PostgreSQL基础之教你如何轻松管理用户角色与权限
1104 0
|
NoSQL Linux MongoDB
MongoDB配置用户名和密码
MongoDB配置用户名和密码
2755 0
|
存储 NoSQL 关系型数据库
MongoDB基本命令
MongoDB基本命令
437 0