MongoDB数据库基础知识整理
什么是MongoDB
MongoDB是一个开源、面向文档、基于NoSQL的数据库程序,使用C++语言编写。它支持丰富的查询功能和可扩展性架构,且具有高可用性、高性能和易扩展的特点。MongoDB的数据结构是文档型的,不使用传统的表格结构,而使用BSON(二进制编码的JSON格式)进行存储。
MongoDB的应用场景
MongoDB在以下场景中有着广泛应用:
- 互联网应用:如博客、新闻网站等需要存储大量数据的应用。
- 大数据处理:MongoDB适合海量非结构化的数据存储与处理,如日志、计算机系统监控信息等。
- 科学研究:MongoDB支持复杂的科学计算和数据分析,可集成到科学计算工作流中。
- 物联网:MongoDB支持高并发的数据插入和检索操作,适合物联网大量传感器设备的数据存储。
MongoDB的基本操作
启动MongoDB
若MongoDB已安装在本地,可以使用以下命令启动:
mongod
连接MongoDB数据库
使用以下命令连接到MongoDB数据库:
mongo
创建/查看数据库
使用以下命令创建或查看数据库:
use example // 创建名为example的数据库
show dbs // 列举所有数据库
创建/查看集合
使用以下命令创建或查看集合:
db.createCollection("users") // 创建名为users的集合
show collections // 列举数据库中的所有集合
插入数据
使用以下命令插入数据:
db.users.insertOne({'name': 'John Doe', 'age': 25, 'email': 'johndoe@example.com'}) // 插入一条记录
db.users.insertMany([{'name': 'Jane Doe', 'age': 24, 'email': 'janedoe@example.com'}, {'name': 'Bob Smith', 'age': 30, 'email': 'bobsmith@example.com'}]) // 插入多条记录
查询数据
使用以下命令查询数据:
db.users.find() // 查询users集合中的所有记录
db.users.findOne({'name': 'John Doe'}) // 查询users集合中name为John Doe的记录
更新数据
使用以下命令更新数据:
db.users.updateOne({'name': 'John Doe'}, {$set: {'age': 26}}) // 更新users集合中name为John Doe的记录的age字段为26
db.users.updateMany({'age': 30}, {$set: {'age': 31}}) // 更新users集合中age为30的记录的age字段为31
删除数据
使用以下命令删除数据:
db.users.deleteOne({'name': 'John Doe'}) // 删除users集合中name为John Doe的记录
db.users.deleteMany({'age': 30}) // 删除users集合中age为30的所有记录
示例说明
示例1:创建一个名为products的数据库,并在其中创建一个名为books的集合,插入两条记录,再将其中一条记录的作者字段更新为"Jane Doe"。
use products // 创建名为products的数据库
db.createCollection("books") // 创建名为books的集合
db.books.insertMany([{'name': 'The Great Gatsby', 'author': 'F. Scott Fitzgerald'}, {'name': 'To Kill a Mockingbird', 'author': 'Harper Lee'}]) // 插入两条记录
db.books.updateOne({'name': 'The Great Gatsby'}, {$set: {'author': 'Jane Doe'}}) // 更新名为The Great Gatsby的记录的作者字段为Jane Doe
示例2:查询books集合中作者为"Harper Lee"的记录,并将其从books集合中删除。
db.books.find({'author': 'Harper Lee'}) // 查询作为Harper Lee的记录
db.books.deleteOne({'author': 'Harper Lee'}) // 删除作为Harper Lee的记录
总结
本文简要介绍了MongoDB的基本知识,包括MongoDB的定义、应用场景以及基本操作。同时提供了两个例子以帮助读者更好地掌握MongoDB的实际应用,希望对想要了解MongoDB的读者有所帮助。