MongoDB知识速查

目录

一、MongoDB简介

二、数据库指令

1.展示所有非空数据库

2.显示当前数据库

3.创建数据库

4.删除数据库

三、集合

1.查看所有集合

2.创建集合

3.删除集合

四、CRUD文档操作

1.插入文档

2.查询文档

3.更新文档

4.删除文档

五、进阶查询

1.运算符

1.1.比较运算符

1.2.逻辑运算符

1.3.成员运算符

1.4.范围运算符

2.投影/映射

3.排序

4.分页

六、用户

总结


一、MongoDB简介

概念:一个开源的 NoSQL 文档数据库。

特点:高性能、高可用性、易扩展、灵活的数据模型。

适用场景:大数据、内容管理、移动应用、用户数据管理等。

二、数据库指令

1.展示所有非空数据库

sql 复制代码
show  dbs

2.显示当前数据库

sql 复制代码
db

3.创建数据库

sql 复制代码
use   数据库名

4.删除数据库

sql 复制代码
db.dropDatabase( )

三、集合

1.查看所有集合

sql 复制代码
show collections

2.创建集合

sql 复制代码
db.createCollection("集合名")

3.删除集合

sql 复制代码
db.集合名.drop()

四、CRUD文档操作

1.插入文档

sql 复制代码
db.collection.insertOne()
db.collection.insertMany()

2.查询文档

sql 复制代码
db.collection.find()
db.collection.findOne()
// 条件查询
db.collection.find({age: {$gt: 18}})
// 投影
db.collection.find({}, {name: 1, age: 1})

3.更新文档

sql 复制代码
db.collection.updateOne()
db.collection.updateMany()
db.collection.replaceOne()
// 使用更新操作符
db.collection.updateOne({_id: 1}, {$set: {status: "active"}})

4.删除文档

sql 复制代码
db.collection.deleteOne()
db.collection.deleteMany()

五、进阶查询

1.运算符

1.1.比较运算符

大于:collection.find({"age": {"$gt": 26}})

大于等于:collection.find({"age": {"$gte": 26}})

小于:collection.find({"age": {"$lt": 26}})

小于等于:collection.find({"age": {"$lte": 26}})

不等于:collection.find({"age": {"$ne": 26}})

1.2.逻辑运算符

and:隐式

or:collection.find({"or":\[{"age": {"lte": 26}},{"age":{"gte": 20}}]})

nor:collection.find({

"$nor": [

{"age": {"$lt": 20}},

{"status": "inactive"}

]

}) # (不满足所有条件执行)

not:collection.find({"age": {"not": {"gt": 25}}})

1.3.成员运算符

in:collection.find({"age": {"$in": [25, 26]}})

nin:collection.find({"age": {"$nin": [25, 26,30]}})

1.4.范围运算符

collection.find({"age": {"gt":25, "lt":35}})

2.投影/映射

它允许你指定查询结果中要包含或排除哪些字段。

collection.find({ }, {"_id": 0})

3.排序

collection.find({}, {"_id": 0}).sort("age", pymongo.DESCENDING)

4.分页

(1)collection.find({ }, {"age": 0}).limit(2) 展示前两项

(2)collection.find({ }, {"age": 0}).skip(2).limit(3) 跳过前2项,继续按顺序展示3项

六、用户

1.创建用户

使用客户端创建用户,需要重启服务。

2.连接认证

python 复制代码
uri = f"mongodb://{user}:{password}@{host}database_name?authSource=test"

3.参数认证

python 复制代码
with pymongo.MongoClient(
        host='localhost',
        port=27017,
        username='prk',
        password='123456'
  ) as client:
    print(client.list_database_names())

4.命令行认证

python 复制代码
mongo -u prk -p  -authenticationDatabase  test

总结

MongoDB是一种流行的NoSQL文档数据库,采用灵活的JSON-like格式存储数据,适合处理非结构化或半结构化数据。数据库指令主要用于管理和操作数据库,如创建、删除、查看数据库等基本操作。集合在MongoDB中相当于关系型数据库中的表,用于存储文档数据,可以动态创建且不需要预定义严格的结构模式。

CRUD文档操作是MongoDB的核心功能,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)文档。通过insertOne()、insertMany()等方法插入数据,使用find()、findOne()等方法查询数据,通过updateOne()、updateMany()等方法更新文档,以及使用deleteOne()、deleteMany()等方法删除文档。这些操作提供了丰富灵活的选项来管理数据。

进阶查询功能包括条件查询、比较运算符、逻辑运算符、正则表达式匹配等高级查询方式,还支持聚合管道进行复杂的数据处理和转换。用户管理涉及数据库权限控制,可以创建不同权限的用户账号,设置读写权限,保障数据安全性。MongoDB的这套完整体系使其能够适应各种复杂的应用场景,从简单的数据存储到复杂的数据分析都能提供良好的支持。