要查看Ubuntu系统中MongoDB的数据,需通过命令行工具(mongo/mongosh)连接数据库并执行查询操作。以下是详细步骤:
在Ubuntu上安装MongoDB需先更新软件包列表,再通过apt安装:
sudo apt update
sudo apt install -y mongodb
安装完成后,启动MongoDB服务并设置开机自启:
sudo systemctl start mongodb
sudo systemctl enable mongodb
验证服务状态(显示active (running)即为正常):
sudo systemctl status mongodb
使用mongo命令(或新版mongosh)连接本地MongoDB服务器(默认端口27017):
mongo
若需指定主机、端口或数据库,可使用以下格式:
mongo --host localhost --port 27017 your_database_name
连接成功后,会进入MongoDB Shell(提示符为>)。
查看所有数据库:使用show dbs命令,列出服务器上的所有数据库及大小:
show dbs
输出示例:
admin 0.000GB
local 0.000GB
test 0.000GB
切换数据库:使用use命令切换到目标数据库(若数据库不存在,会自动创建):
use your_database_name
切换成功后,提示符会显示当前数据库名:
switched to db your_database_name
查看当前数据库的集合:使用show collections命令,列出数据库中的所有集合(类似关系型数据库的“表”):
show collections
输出示例:
users
orders
products
查询所有文档:使用db.集合名.find()命令,返回集合中的所有文档(每条文档为一个JSON对象):
db.users.find()
若需美化输出(格式化JSON),可链式调用pretty()方法:
db.users.find().pretty()
输出示例:
{
"_id": ObjectId("60c72b2f9b1d4d2d1c342e4f"),
"name": "Alice",
"age": 28,
"email": "alice@example.com"
}
查询单个文档:使用db.集合名.findOne()命令,返回符合条件的第一个文档(常用于快速查看示例数据):
db.users.findOne()
条件查询:通过find()方法的第一个参数指定查询条件(使用MongoDB查询操作符):
age等于25的用户:db.users.find({ age: 25 })
age大于20且小于30的用户:db.users.find({ age: { $gt: 20, $lt: 30 } })
name包含“mongo”的用户(正则匹配):db.users.find({ name: /mongo/ })
name以“Al”开头的用户:db.users.find({ name: /^Al/ })
指定返回字段:通过find()方法的第二个参数设置投影(1表示返回该字段,0表示不返回),例如仅返回name和age字段:
db.users.find({}, { name: 1, age: 1, _id: 0 })
输出示例:
{
"name": "Alice",
"age": 28
}
排序:使用sort()方法对结果排序(1为升序,-1为降序),例如按age升序排列:
db.users.find().sort({ age: 1 })
限制结果数量:使用limit()方法限制返回的文档数量,例如仅返回前5条:
db.users.find().limit(5)
跳过结果:使用skip()方法跳过指定数量的文档,例如跳过前10条:
db.users.find().skip(10)
通过以上步骤,即可在Ubuntu系统中使用命令行工具查看MongoDB中的数据。如需更复杂的查询(如聚合、索引),可参考MongoDB官方文档进一步学习。