MongoDB是一种面向文档的NoSQL数据库,它具有以下特点:
基本特性
面向文档
MongoDB是一种面向文档的NoSQL数据库,即数据以文档的形式存储,文档是完整的、自包含的数据对象,通常使用JSON格式存储,因此支持复杂的数据结构。
适用性强
MongoDB支持动态查询,可以方便地执行复杂的查询,支持聚合查询、文本搜索等高级查询,适用于多种不同的应用场景。
可伸缩性高
MongoDB是可伸缩的,即可以很方便地进行水平扩展,支持自动分片,可以实现高性能的读写操作。
高可用性
MongoDB支持三节点复制集,可以自动切换到主节点,实现高可用性和容错性。
内部构造
MongoDB的内部构造包含以下内容:
数据库
MongoDB中的数据以数据库的形式存储,一个MongoDB实例可以包含多个数据库。
集合
集合是MongoDB中存储文档的地方,每个集合都有一个唯一的名称,集合中的文档可以采用不同的结构。
文档
MongoDB中的文档采用BSON(Binary JSON)格式,是一个包含键值对的文档,其中键值对是有序的,并且值可以是一个文档、数组或其他数据类型。
索引
MongoDB中的索引用于快速查找文档,提高查询性能。 MongoDB支持多种类型的索引,包括单字段、组合、哈希、全文本和地理空间等。
示例说明
示例1:插入文档和查询文档
//连接MongoDB数据库
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost:27017/test';
MongoClient.connect(url, function(err, db) {
if (err) throw err;
console.log("Database created!");
//插入文档
var myobj = { name: "Company Inc", address: "Highway 37" };
db.collection("customers").insertOne(myobj, function(err, res) {
if (err) throw err;
console.log("1 document inserted");
//查询文档
db.collection("customers").findOne({}, function(err, result) {
if (err) throw err;
console.log(result.name);
db.close();
});
});
});
以上示例代码展示了如何连接MongoDB数据库、插入文档和查询文档,通过db.collection()
方法指定集合名称,插入文档使用insertOne()
方法,查询文档使用findOne()
方法。
示例2:创建索引和使用索引
//连接MongoDB数据库
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost:27017/test';
MongoClient.connect(url, function(err, db) {
if (err) throw err;
console.log("Database created!");
//创建索引
db.collection("customers").createIndex({ name: 1 }, function(err, result) {
if (err) throw err;
console.log("Index created!");
//使用索引查询文档
db.collection("customers").find({ name: "Company Inc" }).toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
});
以上示例代码展示了如何创建索引和使用索引查询文档,创建索引使用createIndex()
方法,查询文档使用find()
方法,其中find()
方法中的查询条件使用创建的索引进行加速。
本文链接:https://my.lmcjl.com/post/20436.html
4 评论