本文主要介绍了非关系型数据库MongoDB数据库的基础命令以及对集合的增删改查。
本文章大概需要6min阅读时间
1. MongoDB介绍
MongoDB是一种开源的文档数据库管理系统,使用NoSQL(非关系型数据库)的模式。它提供了灵活的数据模型,可以轻松处理不同类型和格式的数据。
相比传统的关系型数据库,MongoDB有以下特点:
- 高度可伸缩性:可以根据需求轻松地将数据库集群扩展到多台服务器上。
- 高性能:MongoDB使用内存映射文件的方式将数据存储在硬盘上,因此可以提供快速的读写访问速度。
- 动态查询:MongoDB支持丰富的查询语法,可以轻松地处理复杂的查询需求。
- 强大的索引支持:MongoDB支持多种类型的索引,包括单字段索引、复合索引、全文索引等,可以提高查询效率。
- 丰富的功能:MongoDB支持数据复制、自动分片、负载均衡等功能,可以保障数据的安全和高可用性。
在使用MongoDB时,需要先安装MongoDB服务端,并使用合适的客户端工具连接和操作数据库。可以使用MongoDB的官方驱动程序或第三方的ORM(对象关系映射)工具来简化数据库操作的过程。
总的来说,MongoDB是一个功能强大、灵活且易于使用的数据库系统,特别适合存储大量非结构化或半结构化的数据。
2.数据库的基础命令
2.1 查看当前数据库
db
2.2 查看所有的数据库
/*方法一*/
show databases
/*方法二*/
show dbs
2.3 切换数据库
use db_name
2.4 删除当前数据库
db.DropDatabase()
3. 集合的基础命令
3.1 创建集合
3.1.1 手动创建
db.createCollection(set_name, options)
db.createCollection("stu")
db.createCollection("sub", {capped: true, size: 10})
3.1.2 自动创建
在第一次插入第一条数据时会自动创建
3.2 查看集合
show collections
3.3 删除集合
db.集合名称.drop()
4. 数据操作
4.1 数据插入
//db.集合名称.insert(docment)
// 例如
db.stu_test.insert({"name": "xiaoming", "age": 10})
// 查询当前集合数据 并返回_id
db.stu_test.find()
// 在终端中插入的数据为json 并且数据中的键可以省略双引号
db.stu_test.insert({name: "xiaohong", age: 18})
db.stu_test.find()sql
4.2 数据保存
// db.集合名称.save(document)
// 如果文档的_id已经存在则修改,如果文档的_id不存在则添加数据
db.stu_test.insert({_id: 10010, name: "xiaoming", age: 30})
// 尝试插入数据 如果当前_id相同,则报错[当前id值重复]
db.stu_test.insert({_id: 10010, name: "xiaoming", age: 40})
// 调用save保存则更新数据
db.stu_test.save({_id: 10010, name: "xiaoming", age: 40})
4.3 数据更新
// db.集合名称.update(<query>, <update>, {multi: <boolean>})
// query: 查询条件
// update: 更新操作符
// multi: 可选参数,默认为false。
// 表示只更新找到的第一条记录,值为true则更新满足条件的全部数据
// 当前这条语句会替换之前的记录,则原数据中的age会消失
db.stu_test.update({name: "xiaowang"}, {name: "xiaozhao"})
// 为了不影响除了name之外的其他数据 需要使用$set语法
db.stu_test.update({name: "xiaowang"}, {$set: {name: "xiaozhao"}})
// 更新所有符合条件的数据 multi参数必须和$符配合使用
db.stu_test.update({name: "xiaowang"}, {$set: {name: "xiaozhao"}}, {multi: true})
4.4 数据删除
// db.集合名称.remove(<query>, {justOne: <boolean>})
// query: 删除指定文档的条件
// justOne: 可选参数,如果设置为true或1,删除一条。默认false,表示删除多条
// 删除符合条件的全部数据
db.stu_test.remove({name: "xiaozhao"})
// 删除一条
db.stu_test.remove({name: "xiaozhao"}, {justOne: true})