MongoDB 数据库

本文主要介绍了非关系型数据库MongoDB数据库的基础命令以及对集合的增删改查。

本文章大概需要6min阅读时间

1. MongoDB介绍

MongoDB是一种开源的文档数据库管理系统,使用NoSQL(非关系型数据库)的模式。它提供了灵活的数据模型,可以轻松处理不同类型和格式的数据。

相比传统的关系型数据库,MongoDB有以下特点:

  1. 高度可伸缩性:可以根据需求轻松地将数据库集群扩展到多台服务器上。
  2. 高性能:MongoDB使用内存映射文件的方式将数据存储在硬盘上,因此可以提供快速的读写访问速度。
  3. 动态查询:MongoDB支持丰富的查询语法,可以轻松地处理复杂的查询需求。
  4. 强大的索引支持:MongoDB支持多种类型的索引,包括单字段索引、复合索引、全文索引等,可以提高查询效率。
  5. 丰富的功能: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})

5. 下期更新数据查询以及聚合操作

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值