博客
关于我
MongoDB语句
阅读量:791 次
发布时间:2023-02-09

本文共 1587 字,大约阅读时间需要 5 分钟。

MongoDB 是一个灵活、高效的数据库管理系统,广泛应用于 Web 应用、实时数据分析等场景。本文将详细介绍 MongoDB 的核心操作方法,包括库管理、数据操作等内容。

1. 库管理

在 MongoDB 中,库管理主要包括以下几个操作:

  • 显示库:可以使用 show dbs 命令查看当前数据库列表。
  • 切换库:使用 use 库名 命令可以切换到指定的数据库。
  • 创建库:如果需要新建一个数据库,可以通过 db 进行操作。
  • 删除库:要注意,删除数据库会永久删除所有数据,使用 db.dropDatabase() 命令进行。

2. 数据库表(集合)操作

集合是 MongoDB 中的基本数据结构,类似于关系数据库的表。以下是一些常用的操作命令:

  • 创建集合:可以通过 db.createCollection("表名", { capped: true, autoIndexId: true, size: 6142800, max: 10000 }) 创建固定大小的集合。
  • 删除集合:使用 db.表名.drop() 命令删除指定集合。
  • 检查集合属性:通过 db.表名.isCapped() 可以检查集合是否为固定大小集合。
  • 集合转换:可以使用 db.runCommand({"convertToCapped":"表名", size: 1000}) 将集合转换为固定大小集合。

3. 数据操作

MongoDB 提供了丰富的数据操作命令,支持增、删、改、查等操作。

增操作

  • 插入单条数据db.表名.insert({a:1, b:"asdf"})save({a:1, b:"asdf"})
  • 插入多条数据db.表名.insertMany([{"b":3}, {"c":4}])
  • 插入数据(自定义变量)db.表名.insert(varname),其中 varname 是定义好的变量。

改操作

  • 更新数据db.表名.update({'a':1}, {$set: {'a':100}}, {multi: true})multi 参数默认为 false,表示只更新一条记录。
  • 替换数据db.表名.save() 方法会替换集合中的文档,需要确保文档包含 _id 字段。
  • 删除数据db.表名.remove({"a":1}, true) 删除一条记录,db.表名.remove({}) 删除集合中的所有数据。

查操作

  • 查询数据db.表名.find({"a":"1"}) 查询符合条件的数据。
  • 复杂查询:支持使用 andornot 等逻辑运算,例如 db.表名.find({$or: [{"a":2}, {"a":3}]})
  • 文本查询db.表名.find({title: /教/}) 查询包含 "教" 字的文本。
  • 排序查询db.表名.find().sort({"a": -1}) 按字段 a 逆序排序。

聚合函数

  • 分组与汇总db.表名.aggregate([{$group: {_id: "$a", count: {$sum: "$b"}}}]]) 按字段 a 分组,计算字段 b 的总和。

4. 索引管理

  • 创建索引db.表名.createIndex({open: 1, close: 1}, {background: true}) 创建索引。
  • 删除索引db.表名.dropIndexes() 删除集合中的所有索引。
  • 查看索引db.表名.getIndexes() 查看集合的索引信息。

5. 其他操作

  • 数据库检查与修复db.repairDatabase() 用于修复数据库,确保数据完整性。
  • 全文索引db.表名.ensureIndex({"字段名": "text"}) 创建全文索引,支持文本搜索。

通过以上操作,可以对 MongoDB 的核心功能有全面了解。

转载地址:http://xsffk.baihongyu.com/

你可能感兴趣的文章
mui框架通讯录检索
查看>>
MySQL 8 公用表表达式(CTE)—— WITH关键字深入用法
查看>>
mysql 8 远程方位_mysql 8 远程连接注意事项
查看>>
MUI框架里的ajax的三种方法
查看>>
MySQL 8.0 恢复孤立文件每表ibd文件
查看>>
Mysql 8.0 新特性
查看>>
MultCloud – 支持数据互传的网盘管理
查看>>
MySQL 8.0.23中复制架构从节点自动故障转移
查看>>
MySQL 8.0开始Group by不再排序
查看>>
mysql ansi nulls_SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思
查看>>
multi swiper bug solution
查看>>
MySQL Binlog 日志监听与 Spring 集成实战
查看>>
MySQL binlog三种模式
查看>>
multi-angle cosine and sines
查看>>
Mysql Can't connect to MySQL server
查看>>
mysql case when 乱码_Mysql CASE WHEN 用法
查看>>
Multicast1
查看>>
mysql client library_MySQL数据库之zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法...
查看>>
MySQL Cluster 7.0.36 发布
查看>>
Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
查看>>