当前位置: 首页 > 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.dtcms.com/a/344541.html

相关文章:

  • kafka的rebalance机制是什么
  • 赛思电子工业级晶振,工业控制的隐形“智”动力
  • Linux服务器定时监测服务脚本
  • det_cam_visualizer.py 函数逐行解读记录
  • (纯新手教学)计算机视觉(opencv)实战八——四种边缘检测详解:Sobel、Scharr、Laplacian、Canny
  • Redis 678
  • 2025-08-22 Python进阶10——魔术方法
  • K8s的相关知识总结
  • X00238-非GNSS无人机RGB图像卫星图像视觉定位python
  • Django中间件自定义开发指南:从原理到实战的深度解析
  • 广播级讯道摄像机CCU后挂上的PGM、ENG、PROD音频旋钮是做什么用的?
  • js:beforeUnload这个方法能不能监听到关闭浏览器和刷新浏览器行为
  • 视觉语言大模型应用开发——基于 CLIP、Gemini 与 Qwen2.5-VL 的视频理解内容审核全流程实现
  • uniapp image标签展示视频第一帧
  • 【Linux】Vim编辑器:从入门到高效使用
  • MiniCPM-V4.0开源并上线魔乐社区,多模态能力进化,手机可用,还有最全CookBook!
  • WebRTC 结合云手机:释放实时通信与虚拟手机的强大协同效能
  • 聚焦科技前沿,华金证券与非凸科技共探数智交易新路径
  • 【GaussDB】全密态等值查询功能测试及全密态技术介绍
  • UNIKGQA论文笔记
  • SYBASE ASE、Oracle、MySQL/MariaDB、SQL Server及PostgreSQL在邮件/短信发送功能上的全面横向对比报告
  • 全景式综述|多模态目标跟踪全面解析:方法、数据、挑战与未来
  • #Datawhale 组队学习#8月-工作流自动化n8n入门-2
  • 基于51单片机的超声波液位检测OLED显示设计
  • MySQL InnoDB表空间深度解析:从原理到性能优化
  • Seaborn数据可视化实战:Seaborn与Plotly交互式图表入门
  • 图像处理中的伪影
  • ASPICE过程能力确定——度量框架
  • 美国对华科技政策思路变化:产业影响与投资逻辑解析
  • C/C++三方库移植到HarmonyOS平台详细教程