好的,以下是MongoDB 简介学习笔记:

MongoDB 简介

MongoDB 是一种开源的 NoSQL(非关系型数据)数据库管理系统,使用 C++ 语言编写。它旨在为开发人员提供高度可扩展性、高性能和易于管理的数据库解决方案。

数据模型

MongoDB 的数据模型是面向文档的,与传统的基于行和列的关系型数据库不同。在 MongoDB 中,数据是以 BSON 格式(二进制 JSON 的缩写)存储的,这使得它更适合于处理半结构化数据。

例如,一个包含学生信息的文档可能如下所示:

jsonCopy Code
{ "_id": ObjectId("5cf0cac9d64bf1a3c930e892"), "name": "张三", "age": 20, "major": "计算机科学", "courses": [ { "name": "数据结构", "teacher": "李四" }, { "name": "操作系统", "teacher": "王五" } ] }

在文档中,每个字段都有其自己的名称和值。文档可以嵌套,也可以包含数组字段。

查询语言

MongoDB 提供了灵活且功能强大的查询语言,可以根据多个条件过滤数据,支持聚合、排序并支持分组操作。

例如,下面的查询可以查找年龄大于 18 岁并且专业为计算机科学的学生:

javascriptCopy Code
db.students.find({$and: [{age: {$gt: 18}}, {major: "计算机科学"}]})

高可用性和可伸缩性

MongoDB 支持主从复制和副本集,可提供高可靠性和可用性。它还支持分片,可轻松扩展到更大的数据集。

实例

以下是一个使用 MongoDB 存储客户数据的 Node.js 示例:

javascriptCopy Code
const MongoClient = require('mongodb').MongoClient; const url = 'mongodb://localhost:27017'; const dbName = 'myproject'; const client = new MongoClient(url, { useNewUrlParser: true }); client.connect(function(err) { console.log("Connected successfully to server"); const db = client.db(dbName); // 插入文档 db.collection('customers').insertOne({ name: 'John Doe', email: 'john.doe@example.com' }, function(err, result) { console.log("Inserted a document into the customers collection."); }); // 查询文档 db.collection('customers').find({}).toArray(function(err, docs) { console.log("Found the following records:"); console.log(docs); }); client.close(); });

在此示例中,我们连接到名为“myproject”的数据库,并向名为“customers”的集合插入一个客户文档,然后查询所有客户文档并将其输出到控制台。