MongoDB常用操作

MongoDB 是一个基于分布式文件存储的开源数据库系统,它使用 JSON 类似的文档结构来存储数据。下面是一些 MongoDB 中常用的命令和操作:

连接到 MongoDB

  • 使用 mongosh 命令行工具连接到本地 MongoDB 服务器:

    shell 复制代码
    mongosh  
  • 连接到远程 MongoDB 服务器:

    shell 复制代码
    mongosh  <hostname>:<port>/<database> -u <username> -p <password>

数据库操作

  • 显示所有数据库:

    javascript 复制代码
    show dbs
  • 切换/选择数据库:

    javascript 复制代码
    use <database_name>
  • 创建或切换到新数据库(如果不存在则创建):

    javascript 复制代码
    use new_database

集合操作

  • 显示当前数据库中所有的集合:

    javascript 复制代码
    show collections
  • 创建集合(通常不需要手动创建,插入文档时会自动创建):

    javascript 复制代码
    db.createCollection("collection_name")
  • 删除集合:

    javascript 复制代码
    db.collection_name.drop()

文档操作

  • 插入单个文档:

    javascript 复制代码
    db.collection_name.insertOne({ key: value, ... })
  • 插入多个文档:

    javascript 复制代码
    db.collection_name.insertMany([{ key1: value1, ... }, { key2: value2, ... }])
  • 查询文档:

    javascript 复制代码
    db.collection_name.find({ key: value, ... }).pretty() // pretty() 使输出更易读
  • 更新单个文档:

    javascript 复制代码
    db.collection_name.updateOne({ key: value, ... }, { $set: { key: newValue, ... }})
  • 更新多个文档:

    javascript 复制代码
    db.collection_name.updateMany({ key: value, ... }, { $set: { key: newValue, ... }})
  • 删除单个文档:

    javascript 复制代码
    db.collection_name.deleteOne({ key: value, ... })
  • 删除多个文档:

    javascript 复制代码
    db.collection_name.deleteMany({ key: value, ... })

其他常用命令

  • 查看帮助信息:

    javascript 复制代码
    help
  • 获取当前使用的数据库名称:

    javascript 复制代码
    db.getName()
  • 退出 MongoDB shell:

    javascript 复制代码
    exit

拓展命令

  • 分页
javascript 复制代码
var pageSize = 10;  // 每页显示的记录数
var page = 2;       // 页码,从1开始
var skipCount = (page - 1) * pageSize;  // 计算需要跳过的记录数

db.users.find().skip(skipCount).limit(pageSize).pretty();
  • 查看索引
javascript 复制代码
db.users.getIndexes()
  • 查找users集合里面uid字段重复的数据
javascript 复制代码
db.users.aggregate([
  {
    $group: {
      _id: "$uid",
      count: { $sum: 1 }
    }
  },
  {
    $match: {
      count: { $gt: 1 }
    }
  }
])
  • 查找所有uid有值的数量
javascript 复制代码
db.users.countDocuments({ uid: { $exists: true, $ne: null } })
  • uid去重后的数据
javascript 复制代码
db.users.distinct("uid")
相关推荐
a_安徒生3 分钟前
linux安装TDengine
linux·数据库·tdengine
程序员学习随笔6 分钟前
PostgreSQL技术内幕19:逻辑备份工具pg_dump、pg_dumpall
数据库·postgresql
尘浮生39 分钟前
Java项目实战II基于微信小程序的校运会管理系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
偶尔。53540 分钟前
什么是事务?事务有哪些特性?
数据库·oracle
安迁岚42 分钟前
【SQL Server】华中农业大学空间数据库实验报告 实验六 视图
数据库·sql·mysql·oracle·实验报告
xoxo-Rachel1 小时前
(超级详细!!!)解决“com.mysql.jdbc.Driver is deprecated”警告:详解与优化
java·数据库·mysql
JH30731 小时前
Oracle与MySQL中CONCAT()函数的使用差异
数据库·mysql·oracle
蓝染-惣右介1 小时前
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
java·数据库·tomcat·mybatis
冷心笑看丽美人1 小时前
Spring框架特性及包下载(Java EE 学习笔记04)
数据库
武子康2 小时前
Java-07 深入浅出 MyBatis - 一对多模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据库·sql·mybatis·springboot