什么是 MongoDB
MongoDB 是一种 NoSQL 数据库,它使用文档模型存储数据,而不是传统关系型数据库中的表格模型。MongoDB 的文档格式为 BSON(Binary JSON),它支持多种数据类型,如字符串、数字、日期、数组和嵌套文档等。
MongoDB 的数据存储方式非常灵活,它支持水平扩展和自动故障转移,因此非常适合大规模分布式系统的使用。
MongoDB 数据存储原理
MongoDB 的数据存储原理可以分为三个部分:数据库、集合和文档。
数据库
MongoDB 中的数据库可以看作是一个容器,用于存储多个集合。每个数据库都有一个唯一的名称,可以通过 use
命令来切换到指定的数据库。如果该数据库不存在,则会自动创建。
集合
MongoDB 中的集合类似于关系型数据库中的表格,但是它并不强制要求每个文档具有相同的结构。集合中的文档可以有不同的字段和数据类型。集合也有一个唯一的名称,可以通过 db.collection
命令创建。
文档
MongoDB 中的文档是最小的数据单元,它类似于关系型数据库中的行。文档是 BSON 格式的,可以存储不同的数据类型。文档中的数据可以嵌套,也可以是数组。
MongoDB 相关操作
连接数据库
在 Node.js 中使用 MongoDB,需要安装 mongodb
模块。连接 MongoDB 数据库的代码如下:
// javascriptcn.com 代码示例 const MongoClient = require('mongodb').MongoClient; const url = 'mongodb://localhost:27017/mydb'; MongoClient.connect(url, function(err, db) { if (err) throw err; console.log('数据库已连接'); db.close(); });
创建集合
使用 createCollection
方法可以创建集合:
// javascriptcn.com 代码示例 const MongoClient = require('mongodb').MongoClient; const url = 'mongodb://localhost:27017/mydb'; MongoClient.connect(url, function(err, db) { if (err) throw err; const dbo = db.db('mydb'); dbo.createCollection('customers', function(err, res) { if (err) throw err; console.log('集合已创建'); db.close(); }); });
插入文档
使用 insertOne
或 insertMany
方法可以插入文档:
// javascriptcn.com 代码示例 const MongoClient = require('mongodb').MongoClient; const url = 'mongodb://localhost:27017/mydb'; MongoClient.connect(url, function(err, db) { if (err) throw err; const dbo = db.db('mydb'); const myobj = { name: 'John', address: 'Highway 71' }; dbo.collection('customers').insertOne(myobj, function(err, res) { if (err) throw err; console.log('文档插入成功'); db.close(); }); });
查询文档
使用 find
方法可以查询文档:
// javascriptcn.com 代码示例 const MongoClient = require('mongodb').MongoClient; const url = 'mongodb://localhost:27017/mydb'; MongoClient.connect(url, function(err, db) { if (err) throw err; const dbo = db.db('mydb'); dbo.collection('customers').find({}).toArray(function(err, result) { if (err) throw err; console.log(result); db.close(); }); });
更新文档
使用 updateOne
或 updateMany
方法可以更新文档:
// javascriptcn.com 代码示例 const MongoClient = require('mongodb').MongoClient; const url = 'mongodb://localhost:27017/mydb'; MongoClient.connect(url, function(err, db) { if (err) throw err; const dbo = db.db('mydb'); const myquery = { address: 'Highway 71' }; const newvalues = { $set: { name: 'Peter', address: 'Lowstreet 4' } }; dbo.collection('customers').updateOne(myquery, newvalues, function(err, res) { if (err) throw err; console.log('文档更新成功'); db.close(); }); });
删除文档
使用 deleteOne
或 deleteMany
方法可以删除文档:
// javascriptcn.com 代码示例 const MongoClient = require('mongodb').MongoClient; const url = 'mongodb://localhost:27017/mydb'; MongoClient.connect(url, function(err, db) { if (err) throw err; const dbo = db.db('mydb'); const myquery = { address: 'Lowstreet 4' }; dbo.collection('customers').deleteOne(myquery, function(err, obj) { if (err) throw err; console.log('文档删除成功'); db.close(); }); });
总结
通过本文的介绍,我们了解了 MongoDB 的数据存储原理和相关操作。MongoDB 的文档模型非常灵活,可以适应不同的数据结构和需求。在实际开发中,我们可以根据具体的情况选择合适的数据库类型和存储方式。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/655a1445d2f5e1655d476471