一文速通MongoDB

MongoDB 是一个开源的、面向文档的 NoSQL 数据库管理系统,与传统的关系型数据库(如 MySQL)不同,MongoDB 存储数据的方式更加灵活,不需要固定的表结构和模式。

MongoDB 的一些关键特性:

文档型存储:

MongoDB 使用 BSON(二进制 JSON) 格式存储数据,数据以文档的形式组织。每个文档类似于 JSON 对象,可以包含键值对、数组、嵌套文档等多种结构。

无模式设计:

MongoDB 不要求事先定义固定的模式,可以根据需求自由地添加、修改文档中的字段,而不需要像传统关系数据库那样修改表结构。

高性能和水平扩展:

MongoDB 通过 分片 和 副本集 实现高性能和高可用性。分片可以将数据分布到多个服务器上,从而实现水平扩展,应对大规模数据和高并发访问。副本集则通过数据的多副本存储,提供数据冗余和故障转移能力。

支持查询和聚合:

MongoDB 支持丰富的查询语言,可以执行 CRUD(增、删、查、改)操作,同时也支持复杂的聚合操作(如分组、排序、过滤等)。

MongoDB 的基本概念:

数据库(Database):是 MongoDB 中的容器,类似于关系数据库中的数据库。

集合(Collection):一个数据库中可以有多个集合,类似于关系数据库中的表。集合中的文档可以有不同的结构。

文档(Document):集合中的每个数据项,类似于关系数据库中的行。每个文档由字段和值组成,通常是 JSON 格式。

字段(Field):文档中的键值对,类似于关系数据库中的列。

常用的 MongoDB 操作指令:

数据库操作:

       查看所有数据库:show databases

       创建/切换数据库:use database_name

        删除数据库:db.dropDatabase()

集合操作:

查看当前数据库中的所有集合:show collections

创建集合:db.createCollection('collection_name')

删除集合:db.collection_name.drop()

文档操作:

       插入文档:

       单个文档插入:db.collection_name.insertOne({ name: "John", age: 30 })

      多个文档插入:db.collection_name.insertMany([{ name: "Alice", age: 25 }, { name: "Bob", age: 27 }])

        查询文档:

     查询所有文档:db.collection_name.find()

     条件查询(例如查询年龄大于25的文档):db.collection_name.find({ age: { $gt: 25 } })

     使用多个条件查询(例如查询年龄大于25且名字是 "Alice" 的文档):db.collection_name.find({ age: { $gt: 25 }, name: "Alice" })

       更新文档:

       更新单个文档:db.collection_name.updateOne({ name: "John" }, // 查询条件    { $set: { age: 31 } } // 更新操作)

       更新多个文档:db.collection_name.updateMany({ age: { $lt: 30 } }, // 查询条件

{ $set: { status: "young" } } // 更新操作)

        删除文档:

       删除单个文档:db.collection_name.deleteOne({ name: "John" })

       删除多个文档:db.collection_name.deleteMany({ age: { $lt: 30 } })

常见的查询操作符:

       $gt: 大于

       $lt: 小于

       $gte: 大于等于

       $lte: 小于等于

       $ne: 不等于

       $in: 在某些值范围内

       $and: 与操作

       $or: 或操作

你可能感兴趣的:(数据库,mongodb,nosql)