show dbs show databases 切换数据库 use 数据库名称 cls=clear 创建集合(数据表) db.集合名称.insertOne({name:"AAA"}) 插入数据 db.集合名称.insertOne({AAA:"BBB"}) db.集合名称.insertMany([{AAA:"BBB"},{CCC:"DDD"}]) 查看数据 db.集合名称.find() 条件查询 db.集合名称.find({查询字段名称:查询的指定数据}) db.集合名称.find({查询字段名称:查询的指定数据},{返回的字段1名称:1,返回的字段2名称,1}) db.集合名称.find({查询字段名称:查询的指定数据},{不返回的字段名称,0}) db.集合名称.find({查询字段名称:查询的指定数据},{返回字段名称:{$gt:3}}) 大于3才返回 $in:{1,2,3} 取值范围 $gt:3 >3 $exists:true 字段是否存在,而不是字段值是否存在。 $gte:3 >=3 $lte:3 <=3 $gte:3,$gte:5 3<=X<=5 $not:{条件} 对里面的条件取反再查询 $eq:条件 判等 $regex:正则表达式 /aaaa/ 聚合 db.集合名称.countDocuments() db.集合名称.countDocuments({查询字段名称:{查询条件:查询数值}}) 查询一条数据 db.集合名称.findOne() 更新一条数据 db.集合名称.updateOne({旧的数据名称:数值},{$set:{新的数据字段:数值}}) 删除数据 db.集合名称.deleteOne({字段名称:数据}) limit限制返回数量 db.集合名称.find().limit(数字) skip跳过开头数据 db.集合名称.find().limit(数字).skip(数字)
MongoDB是一种流行且广泛使用的NoSQL数据库,旨在具有可扩展性、灵活性和高性能。它以面向文档的格式存储数据,使用类似JSON的文档和动态模式。MongoDB以其处理大量数据和提供快速高效访问这些数据的能力而闻名。
MongoDB的一些关键特性包括:
面向文档:MongoDB以灵活、自描述的文档形式存储数据,易于表示复杂的层次关系和处理不断演化的模式。
可扩展性:MongoDB设计为跨多个服务器水平扩展,允许数据在集群中分布,以提高性能和容错能力。
高性能:MongoDB通过利用内存缓存和其他优化技术,提供快速的读写操作。
灵活查询:MongoDB支持强大的查询功能,包括即席查询、索引和聚合管道,便于检索和操作数据。
自动分片:MongoDB自动将数据分布在多个服务器上,确保可扩展性和高可用性。
复制:MongoDB支持副本集,提供自动故障转移和数据冗余,确保高可用性和数据持久性。
丰富的生态系统:MongoDB拥有充满活力的社区和丰富的工具、库和框架,便于与其他技术集成和构建应用程序。
MongoDB广泛使用,包括Web和移动应用程序、实时分析、内容管理系统等
以下是一些使用MongoDB的实际案例:
电子商务平台:许多电子商务平台使用MongoDB来存储和管理产品目录、用户信息、订单和交易数据。MongoDB的灵活模式使其适用于不断变化的产品属性和用户需求。
社交媒体应用:社交媒体应用如Twitter、Instagram和LinkedIn使用MongoDB来存储用户配置文件、帖子、评论和关系数据。MongoDB的高可扩展性和快速查询能力使其适合处理大量的社交数据。
物联网(IoT)应用:物联网应用程序收集和分析大量的传感器数据。MongoDB的高性能和自动分片功能使其成为存储和处理物联网数据的理想选择。
实时分析:MongoDB的聚合管道和强大的查询功能使其成为实时分析和报告的理想数据库。例如,许多新闻和媒体公司使用MongoDB来存储和分析用户行为数据,以改善内容推荐和广告定位。
日志管理:MongoDB可以用作日志管理系统的后端数据库。它能够处理大量的日志数据,提供快速的查询和聚合功能,方便进行故障排查和性能分析。
这些案例只是MongoDB的一小部分应用场景,它的灵活性和可扩展性使其适用于各种不同类型的应用程序和业务需求。
代码案例:
from pymongo import MongoClient # 连接到MongoDB数据库 client = MongoClient("mongodb://localhost:27017/") # 选择数据库 db = client["mydatabase"] # 选择集合(表) collection = db["mycollection"] # 插入一条数据 data = { "name": "John", "age": 25, "city": "New York" } collection.insert_one(data) # 关闭连接 client.close()
from pymongo import MongoClient
# 连接到MongoDB数据库
client = MongoClient("mongodb://localhost:27017/")
# 选择数据库
db = client["mydatabase"]
# 选择集合(表)
collection = db["mycollection"]
# 查询数据
result = collection.find({"city": "New York"})
for doc in result: print(doc)
# 关闭连接
client.close()
from pymongo import MongoClient
# 连接到MongoDB数据库
client = MongoClient("mongodb://localhost:27017/")
# 选择数据库
db = client["mydatabase"]
# 选择集合(表)
collection = db["mycollection"]
# 更新数据
query = {"name": "John"}
new_values = {"$set": {"age": 30}}
collection.update_one(query, new_values)
# 关闭连接
client.close()
from pymongo import MongoClient
# 连接到MongoDB数据库
client = MongoClient("mongodb://localhost:27017/")
# 选择数据库
db = client["mydatabase"]
# 选择集合(表)
collection = db["mycollection"]
# 插入一条数据
data = { "name": "John", "age": 25, "city": "New York" }
collection.insert_one(data)
# 关闭连接
client.close()
from pymongo import MongoClient
# 连接到MongoDB数据库
client = MongoClient("mongodb://localhost:27017/")
# 选择数据库
db = client["mydatabase"]
# 选择集合(表)
collection = db["mycollection"]
# 查询数据
query = {"city": "New York"}
result = collection.find(query)
for doc in result: print(doc)
# 关闭连接
client.close()
from pymongo import MongoClient
# 连接到MongoDB数据库
client = MongoClient("mongodb://localhost:27017/")
# 选择数据库
db = client["mydatabase"]
# 选择集合(表)
collection = db["mycollection"]
# 更新数据
query = {"name": "John"}
new_values = {"$set": {"age": 30}}
collection.update_one(query, new_values)
# 关闭连接
client.close()
show dbs
或
show databases
切换数据库:
use databaseName
清屏:
cls # Windows
clear # macOS / Linux
创建集合(数据表):
db.collectionName.insertOne({name: "AAA"})
插入数据:
db.collectionName.insertOne({AAA: "BBB"})
db.collectionName.insertMany([{AAA: "BBB"}, {CCC: "DDD"}])
查看数据:
db.collectionName.find()
条件查询:
db.collectionName.find({fieldName: queryValue})
db.collectionName.find({fieldName: queryValue}, {returnField1: 1, returnField2: 1})
db.collectionName.find({fieldName: queryValue}, {excludeField: 0})
db.collectionName.find({fieldName: queryValue}, {returnField: {$gt: 3}})
其中,��表示取值范围,in表示取值范围,gt表示大于,������表示字段是否存在,exists表示字段是否存在,gte表示大于等于,���表示小于等于,lte表示小于等于,not表示对条件取反查询,��表示判等,eq表示判等,regex表示正则表达式。
聚合:
db.collectionName.countDocuments()
db.collectionName.countDocuments({fieldName: {queryOperator: queryValue}})
查询一条数据:
db.collectionName.findOne()
更新一条数据:
db.collectionName.updateOne({oldField: value}, {$set: {newField: value}})
删除数据:
db.collectionName.deleteOne({fieldName: value})
限制返回数量(limit):
db.collectionName.find().limit(number)
跳过开头数据(skip):
db.collectionName.find().limit(number).skip(number)