MongoDB 概念解析学习笔记
一、MongoDB 简介
MongoDB 是一款基于分布式文件存储的 NoSQL 数据库系统,由 C++ 语言编写而成。它旨在为 Web 应用提供可扩展的高性能数据存储解决方案。
二、MongoDB 的数据模型
MongoDB 的数据模型采用了 BSON(Binary JSON)格式,BSON 是一种类 JSON 的二进制形式,支持内嵌的文档和数组对象,并且比 JSON 更加高效、更容易解析。
三、MongoDB 的主要概念
1. 集合(Collection)
MongoDB 中的集合类似于关系型数据库中的表,但是它们没有固定的结构。集合可以包含任意数量的文档,每个文档都可以有不同的字段。
2. 文档(Document)
MongoDB 中的文档是一种类似于 JSON 格式的数据结构,采用 BSON 格式存储。文档是 MongoDB 中的最小数据单位,每个文档都包含一个唯一的 _id
字段作为主键。
下面是一个 MongoDB 文档的例子:
jsonCopy Code{
"_id": ObjectId("60b0f5894d6bf14c688a931f"),
"name": "Alice",
"age": 30,
"email": "alice@example.com",
"address": {
"city": "Beijing",
"country": "China"
},
"pets": ["dog", "cat"]
}
3. 索引(Index)
MongoDB 中的索引类似于关系型数据库中的索引,它可以大大提高查询效率。MongoDB 支持多种类型的索引,包括单字段索引、组合索引、地理空间索引等。
下面是一个在 name
字段上创建的单字段索引的例子:
javascriptCopy Codedb.collection.createIndex({ name: 1 })
4. 游标(Cursor)
MongoDB 中的游标用于遍历查询结果集,类似于关系型数据库中的游标。游标可以进行条件过滤、排序等操作,同时支持分页功能。
下面是一个查询并遍历集合中所有文档的例子:
javascriptCopy Codevar cursor = db.collection.find()
while (cursor.hasNext()) {
var doc = cursor.next()
printjson(doc)
}
四、MongoDB 的实例
1. 安装 MongoDB
首先需要下载并安装 MongoDB,具体安装过程可以参考官方文档。
2. 创建数据库和集合
使用 use
命令创建数据库,并使用 db.createCollection
命令创建集合。
javascriptCopy Codeuse mydb
db.createCollection("mycollection")
3. 插入文档
使用 db.collection.insert
命令插入文档。注意,如果插入的文档中没有 _id
字段,MongoDB 会自动生成一个唯一的 _id
值。
javascriptCopy Codedb.mycollection.insert({
"name": "Tom",
"age": 25,
"email": "tom@example.com"
})
4. 查询文档
使用 db.collection.find
命令查询文档。可以使用各种条件过滤、排序等操作。
javascriptCopy Codedb.mycollection.find({ "name": "Tom" }).sort({ "age": -1 })
5. 更新文档
使用 db.collection.update
命令更新文档。
javascriptCopy Codedb.mycollection.update({ "name": "Tom" }, { $set: { "age": 26 } })
6. 删除文档
使用 db.collection.remove
命令删除文档。
javascriptCopy Codedb.mycollection.remove({ "name": "Tom" })
以上就是 MongoDB 的基本概念和实例,希望对你有所帮助。