返回
Node.js 学习笔记(九):纵观 MongoDB
前端
2023-09-04 17:04:45
MongoDB 简介
MongoDB 是一款介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 bson 格式,因此可存储比较复杂的数据类型。MongoDB 还支持多种查询语言,包括 SQL、JavaScript 等,这使得它非常适合开发人员使用。
MongoDB 的主要特点包括:
- 高性能:MongoDB 采用了高性能的存储引擎,能够处理海量的数据。
- 高伸缩性:MongoDB 可以通过分片和复制来实现高伸缩性,能够满足不同规模的数据存储和处理需求。
- 易于使用:MongoDB 具有友好的用户界面和丰富的查询语言,非常适合开发人员使用。
MongoDB 基本概念
在 MongoDB 中,数据存储在文档中,文档是类似 JSON 的数据结构。文档可以存储各种类型的数据,包括字符串、数字、布尔值、数组、对象等。
MongoDB 将文档存储在集合中,集合类似于关系数据库中的表。集合可以包含任意数量的文档。
MongoDB 通过查询语言来操作数据,查询语言支持多种语法,包括 SQL、JavaScript 等。
MongoDB 操作方法
MongoDB 提供了丰富的操作方法,包括插入、查询、更新、删除等。这些操作方法都可以通过 MongoDB 的客户端库或 REST API 来实现。
插入
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
// Connection URL
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'myproject';
// Create a new MongoClient
const client = new MongoClient(url, { useNewUrlParser: true });
// Use connect method to connect to the Server
client.connect(function (err) {
assert.equal(null, err);
console.log("Connected successfully to server");
const db = client.db(dbName);
// Insert a single document
const doc = { name: 'MongoDB', type: 'database' };
db.collection('mycollection').insertOne(doc, function (err, result) {
assert.equal(null, err);
console.log("Inserted a document into the collection.");
});
client.close();
});
查询
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
// Connection URL
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'myproject';
// Create a new MongoClient
const client = new MongoClient(url, { useNewUrlParser: true });
// Use connect method to connect to the Server
client.connect(function (err) {
assert.equal(null, err);
console.log("Connected successfully to server");
const db = client.db(dbName);
// Find one document
db.collection('mycollection').findOne({ name: 'MongoDB' }, function (err, doc) {
assert.equal(null, err);
console.log("Found a document in the collection.");
});
client.close();
});
更新
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
// Connection URL
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'myproject';
// Create a new MongoClient
const client = new MongoClient(url, { useNewUrlParser: true });
// Use connect method to connect to the Server
client.connect(function (err) {
assert.equal(null, err);
console.log("Connected successfully to server");
const db = client.db(dbName);
// Update a document
db.collection('mycollection').updateOne({ name: 'MongoDB' }, { $set: { type: 'NoSQL' } }, function (err, result) {
assert.equal(null, err);
console.log("Updated a document in the collection.");
});
client.close();
});
删除
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
// Connection URL
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'myproject';
// Create a new MongoClient
const client = new MongoClient(url, { useNewUrlParser: true });
// Use connect method to connect to the Server
client.connect(function (err) {
assert.equal(null, err);
console.log("Connected successfully to server");
const db = client.db(dbName);
// Delete a document
db.collection('mycollection').deleteOne({ name: 'MongoDB' }, function (err, result) {
assert.equal(null, err);
console.log("Deleted a document from the collection.");
});
client.close();
});
MongoDB 应用场景
MongoDB 非常适合以下场景:
- 大数据存储和处理:MongoDB 可以存储和处理海量的数据,非常适合大数据分析和处理。
- 实时数据处理:MongoDB 具有高性能,非常适合实时数据处理。
- JSON 数据存储:MongoDB 可以存储 JSON 格式的数据,非常适合存储和处理 JSON 数据。
- 文档存储:MongoDB 可以存储复杂的数据结构,非常适合存储和处理文档。
总结
MongoDB 是一款非常强大且易于使用的数据库,非常适合存储和处理大数据。它具有高性能、高伸缩性、易于使用等优点,非常适合开发人员使用。