1. 安装MongoDB
在Debian上安装MongoDB需通过APT包管理器完成。首先更新软件包列表,然后添加MongoDB官方仓库并安装mongodb-org包:
sudo apt update
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/debian $(lsb_release -sc)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update
sudo apt install -y mongodb-org
安装完成后,启动MongoDB服务并设置开机自启:
sudo systemctl start mongod
sudo systemctl enable mongod
验证安装是否成功:
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
若返回"ok": 1,则表示安装成功。
2. 连接到MongoDB
使用mongo命令行工具连接到本地MongoDB实例:
mongo
连接后进入MongoDB Shell,可执行数据库操作(如切换数据库use mydatabase、查看集合show collections)。
3. 导入数据到MongoDB
将外部数据(如CSV、JSON文件)导入MongoDB集合,可使用mongoimport工具。例如,导入data.csv文件到mydatabase数据库的mycollection集合:
mongoimport --db mydatabase --collection mycollection --type csv --headerline --file data.csv
其中--headerline表示第一行为字段名,--type指定文件类型(支持csv、json)。
4. 数据查询与聚合分析
MongoDB提供强大的查询语言和聚合框架,用于数据检索与分析。
age > 25的用户数据:db.mycollection.find({ age: { $gt: 25 } })
db.mycollection.aggregate([
{ $group: { _id: "$gender", count: { $sum: 1 }, avgAge: { $avg: "$age" } } },
{ $sort: { avgAge: -1 } }
])
聚合管道通过多个阶段(如$group、$sort、$match)处理数据,支持复杂分析场景。5. 使用Python进行数据分析
结合Python的pymongo库(连接MongoDB)和pandas库(数据处理),可实现更深入的分析。
pip install pymongo pandas
from pymongo import MongoClient
import pandas as pd
# 连接MongoDB
client = MongoClient('localhost', 27017)
db = client['mydatabase']
collection = db['mycollection']
# 查询数据并转为DataFrame
data = list(collection.find({}, {'_id': 0})) # 排除_id字段
df = pd.DataFrame(data)
# 数据分析:计算平均值、描述性统计
print(df['age'].mean())
print(df.describe())
Pandas的describe()函数可快速生成数据的统计摘要(如均值、标准差、分位数)。6. 数据可视化
将分析结果可视化,可使用matplotlib或seaborn库(Python)。例如,绘制用户年龄分布直方图:
import matplotlib.pyplot as plt
import seaborn as sns
# 绘制直方图
sns.histplot(df['age'], bins=10, kde=True)
plt.title('Age Distribution')
plt.xlabel('Age')
plt.ylabel('Count')
plt.show()
此外,也可使用MongoDB Compass(可视化工具)直接查看集合数据的分布和趋势。
7. 性能优化与监控
age字段创建索引:db.mycollection.createIndex({ age: 1 })
$match(过滤数据)、$project(选择字段)阶段减少数据处理量。mongostat(实时显示操作次数、内存使用)、mongotop(显示集合读写时间);mongostat监控实例状态:sudo apt install -y mongostat
mongostat --host localhost:27017
这些工具可帮助定位性能瓶颈,确保数据分析任务高效运行。