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.展示所有非空数据库
show dbs
2.显示当前数据库
db
3.创建数据库
use 数据库名
4.删除数据库
db.dropDatabase( )
三、集合
1.查看所有集合
show collections
2.创建集合
db.createCollection("集合名")
3.删除集合
db.集合名.drop()
四、CRUD文档操作
1.插入文档
db.collection.insertOne()
db.collection.insertMany()
2.查询文档
db.collection.find()
db.collection.findOne()
// 条件查询
db.collection.find({age: {$gt: 18}})
// 投影
db.collection.find({}, {name: 1, age: 1})
3.更新文档
db.collection.updateOne()
db.collection.updateMany()
db.collection.replaceOne()
// 使用更新操作符
db.collection.updateOne({_id: 1}, {$set: {status: "active"}})
4.删除文档
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.连接认证
uri = f"mongodb://{user}:{password}@{host}database_name?authSource=test"
3.参数认证
with pymongo.MongoClient(host='localhost',port=27017,username='prk',password='123456') as client:print(client.list_database_names())
4.命令行认证
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的这套完整体系使其能够适应各种复杂的应用场景,从简单的数据存储到复杂的数据分析都能提供良好的支持。