1. MongoDB简介
MongoDB是一个NoSQL非关系型数据库,它使用文档(类似于JSON格式)来存储数据,而不是使用表/行/columns。
MongoDB的主要特点是:可扩展性,高性能,灵活性和易开发。它支持多种编程语言,比如Python,Java,C,C++等。MongoDB已经成为当今最受欢迎的非关系型数据库之一,常用于Web应用程序(如Twitter,LinkedIn等)。
2. Ubuntu上安装MongoDB
2.1 添加MongoDB仓库
Ubuntu默认的软件仓库中没有MongoDB,需要手动添加MongoDB的软件仓库。在终端中执行以下命令:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update
sudo命令用于以管理员权限运行命令。
第一条命令添加MongoDB的GPG密钥。
第二条命令添加MongoDB的软件源到Ubuntu的软件源列表中。
第三条命令用于更新软件源缓存。
2.2 安装MongoDB
终端中执行以下命令:
sudo apt-get install -y mongodb-org
-y参数用于自动确认安装,避免在安装时出现人机交互的提示。
安装完毕后,MongoDB将自动启动并运行。
3. MongoDB服务管理
3.1 启动MongoDB服务
在终端中执行以下命令启动MongoDB服务:
sudo service mongod start
默认情况下,MongoDB服务将在本地监听27017端口。
可以通过查看MongoDB日志文件来验证服务是否已经启动。在终端中执行以下命令打开MongoDB日志文件:
sudo tail /var/log/mongodb/mongod.log
如果看到日志文件中的“waiting for connections on port 27017”,则表明MongoDB服务已经成功启动。
3.2 关闭MongoDB服务
在终端中执行以下命令关闭MongoDB服务:
sudo service mongod stop
3.3 重启MongoDB服务
在终端中执行以下命令重启MongoDB服务:
sudo service mongod restart
4. 使用MongoDB
4.1 连接MongoDB
可以使用Mongo Shell或任何MongoDB驱动程序连接MongoDB。在终端中执行以下命令启动Mongo Shell:
mongo
这将连接本地MongoDB服务器,并显示一个db命令提示符。
4.2 创建数据库
可以使用Mongo Shell中的“db.createCollection()”命令来创建一个数据库。例如,以下命令将创建一个名为“mydatabase”的数据库:
use mydatabase
MongoDB是惰性创建数据库的,这意味着它只有在真正需要使用该数据库时才会创建它。因此,在使用该数据库前,必须先插入一条数据记录。
4.3 创建集合
MongoDB包含集合而不是表,可以使用Mongo Shell中的db.createCollection()命令创建一个集合。例如,以下命令将创建一个名为“mycollection”的集合:
db.createCollection("mycollection")
4.4 插入文档
数据在MongoDB中以文档的形式存储。可以使用Mongo Shell中的db.collection.insert()命令将文档插入集合中。例如,以下命令将插入一个名为“mydocument”的文档到“mycollection”集合中:
db.mycollection.insert({name: "mydocument", age: 25})
如果这样的文档还不存在,则将自动创建该集合。
4.5 查询文档
可以使用Mongo Shell中的db.collection.find()命令查询集合。例如,以下命令将返回“mycollection”集合中的所有文档:
db.mycollection.find()
可以使用查询条件来过滤文档。例如,以下命令将返回所有age属性等于25的文档:
db.mycollection.find({age: 25})
4.6 删除文档
可以使用Mongo Shell中的db.collection.remove()命令删除文档。例如,以下命令将从“mycollection”集合中删除名为“mydocument”的文档:
db.mycollection.remove({name: "mydocument"})
可以使用查询条件来删除符合条件的文档。例如,以下命令将删除所有age属性等于25的文档:
db.mycollection.remove({age: 25})
5. 结论
通过本文,您已经了解了如何在Ubuntu上安装和使用MongoDB。MongoDB具有灵活性,易扩展和更快的速度,是Web应用程序的首选非关系型数据库之一。