当前位置: 首页 > news >正文

Mongodb操作指南

一、数据库操作

1. 展示所有非空数据库

show dbs

该命令会列出所有包含数据的数据库。

2. 显示当前数据库

db

此命令用于查看当前正在使用的数据库。

3. 切换或创建数据库

use 数据库名

如果指定的数据库不存在,MongoDB 会在首次插入数据时自动创建它。如果已存在,则直接切换到该数据库。

4. 删除数据库

db.dropDatabase()

此命令会删除当前数据库及其所有数据。

二、集合操作

1. 展示所有集合

show collections

该命令会列出当前数据库中的所有集合。

2. 创建集合

db.createCollection(集合名)

通过此命令可以创建一个新的集合。

3. 删除集合

db.集合名.drop()

此命令用于删除指定的集合。

三、文档操作

1. 查询文档

(1)查询所有文档
db.集合名.find({})

此命令会返回集合中的所有文档。

(2)查询单个文档
db.集合名.findOne({})

该命令用于获取集合中的第一个文档。

2. 插入文档

(1)插入单个文档
db.集合名.insertOne({})

此命令用于插入一个文档。

(2)插入多个文档
db.集合名.insertMany([{},{},{}])

该命令可以一次性插入多个文档。

3. 修改文档

(1)修改单个文档
db.集合名.updateOne({}, {$set: {}})

此命令用于修改第一个匹配的文档。

(2)修改多个文档
db.集合名.updateMany({}, {$set: {}})

该命令可以修改所有匹配的文档。

4. 删除文档

(1)删除单个文档
db.集合名.deleteOne({})

此命令用于删除第一个匹配的文档。

(2)删除多个文档
db.集合名.deleteMany({})

该命令可以删除所有匹配的文档。

四、进阶查询

1. 运算符

(1)比较运算符
  • 查询年龄大于 30 的文档:

    find({"age": {"$gt": 30}})
  • 查询年龄大于等于 20 的文档:

    find({"age": {"$gte": 20}})
  • 查询年龄小于 30 的文档:

    find({"age": {"$lt": 30}})
  • 查询年龄小于等于 30 的文档:

    find({"age": {"$lte": 30}})
  • 查询年龄等于 30 的文档:

    find({"age": 30})
  • 查询年龄不等于 30 的文档:

    find({"age": {"$ne": 30}})
(2)逻辑运算符
  • and:查询年龄等于 30 且名字不等于 "t3" 的文档:

    find({"age": 30, "name": {"$ne": "t3"}})

    或者:

    find({"$and": [{"age": {"$gt": 20}}, {"age": {"$lt": 30}}]})
  • or:查询年龄等于 20 或 25 的文档

    find({"$or": [{"age": 20}, {"age": 25}]})
  • not:查询年龄不大于 25 的文档

    find({"age": {"$not": {"$gt": 25}}})
(3)范围运算符
  • 查询年龄在 25 到 35 之间的文档

    find({"age": {"$gt": 25, "$lt": 35}})
(4)成员运算符
  • 查询年龄在 [20, 25] 范围内的文档

    find({"age": {"$in": [20, 25]}})

2. 映射

  • 查询时隐藏 _id 字段

    find({}, {"_id": 0})

3. 排序

  • 按年龄降序排序

    find({}, {"_id": 0}).sort([("age", pymongo.DESCENDING)])
  • 按年龄和名字降序排序

    find({}, {"_id": 0}).sort([("age", pymongo.DESCENDING), ("name", pymongo.DESCENDING)])

4. 分页

  • 查询前 2 条记录

    find({}, {"_id": 0}).limit(2)
  • 跳过前 2 条记录,查询第 3 条记录

    find({}, {"_id": 0}).skip(2).limit(1)

五、用户管理

1. 创建用户

  • 使用客户端创建用户后,需要重启服务。

2. 连接认证

  • 使用连接字符串进行认证

    f"mongodb://{user}:{password}@{host}/database_name?authSource=test"

3. 参数认证

  • 使用参数进行认证

    host="localhost",
    port=27017,
    username='zzy',
    password='123456',
    authSource='test'  # 认证数据库,通常是admin

4. 命令行认证

  • 使用命令行进行认证

    mongo -u zzy -p -authenticationDatabase test
http://www.xdnf.cn/news/1347985.html

相关文章:

  • 大麦盒子DM4036-精简固件包及教程
  • 2025.8.22周五 在职老D渗透日记day24:burp+mumu抓包 安卓7.0以上证书配置
  • 电脑端完全免费的动态壁纸和屏保软件(真正免费、无广告、无会员)
  • 二叉搜索树(BST)、AVL树、红黑树
  • 爬虫基础学习-链接协议分析,熟悉相关函数
  • 基于抗辐照性能的ASP4644S电源芯片特性分析与多领域应用验证
  • 笔记本怎么才能更快散热?
  • DataStream实现WordCount
  • 信息结构统一论:物理世界与人类感知、认知及符号系统的桥梁
  • 透射TEM新手入门:衍射斑点标定 1
  • [特殊字符] TTS格局重塑!B站推出Index-TTS,速度、音质、情感表达全维度领先
  • Day25 栈 队列 二叉树
  • 特大桥施工绳断 7 人亡:索力实时监测预警机制亟待完善
  • kvcache比赛记录
  • 集群与负载均衡:HAProxy 与 Nginx 实践
  • 融云Im单独一个拍照或者拍摄插件Plugin
  • 自学嵌入式第二十五天:数据结构-队列、树
  • 配电网重构优化:以减小网损为目标的智能算法实现
  • 20250822给荣品RD-RK3588开发板刷Rockchip原厂的Android14时点亮荣品的8寸屏
  • SN编码升级:从“制造标记”到“数字孪生身份证”
  • There are test failures. clean deploy 异常
  • [RestGPT] RestGPT智能体
  • Bluedroid vs NimBLE
  • 20.9 QLoRA微调实战:1.5B参数Whisper-large-v2在24GB显存实现中文语音识别,CER骤降50%!
  • 使用tauri打包cocos小游戏,并在抖音小玩法中启动,拿到启动参数token
  • ​Kubernetes 详解:云原生时代的容器编排与管理
  • python selenium+pytest webUI自动化基础框架
  • Java 18 新特性及具体应用
  • linux----进度条实现和gcc编译
  • 基于海光DCU平台的cube-studio软件适配