Pymongo入门学习笔记(一)


MongoDB是由C++语言编写的基于分布式文件存储的开源数据库系统。MongoDB与MySQL等经典的关系数据库不同,它是一种NoSQL数据库。NoSQL即“Not Only SQL”,意思是“不仅仅是SQL”。

MongoDB作为NoSQL

  • 代表着不仅仅是SQL
  • 没有声明性查询语言
  • 没有预定义的模式
  • 键-值对存储,列存储,文档存储,图形数据库
  • 适用于非结构化和不可预知的数据
  • 高性能,高可用性和可伸缩性

MongoDB简介

文档(Documents)

MongoDB数据库中的一条记录(record)就是一个文档。文档由键-值对构成。MongoDB中的文档与JSON对象十分相似。文档中的可以包含其他文档、数列或由文档构成的数列。

下面是一个文档的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"_id" : ObjectId("54c955492b7c8eb21818bd09"),
"address" : {
"street" : "2 Avenue",
"zipcode" : "10075",
"building" : "1480",
"coord" : [ -73.9557413, 40.7720266 ]
},
"borough" : "Manhattan",
"cuisine" : "Italian",
"grades" : [
{
"date" : ISODate("2014-10-01T00:00:00Z"),
"grade" : "A",
"score" : 11
},
{
"date" : ISODate("2014-01-16T00:00:00Z"),
"grade" : "B",
"score" : 17
}
],
"name" : "Vella",
"restaurant_id" : "41704620"
}

集合(Collections)

MongoDB把文档存储在集合中。集合的概念类似于关系数据库中的“表”(tables)。但与关系数据库的不同之处在于,一个集合并不会要求处于这个集合之下的文档使用统一的结构。

MongoDB安装(Linux)

下载安装

尽管许多Linux发行版的软件仓库中提供了MongoDB的一键安装,但是就我的经验来讲,最好还是到官网下载tgz包下载安装比较好。这样的话,一来可以获得最新的安装版本,二来部分Linux的软件仓库中之提供了数据库的核心软件,并没有提供mongoimport、mongoexport等工具(我使用的OpenSuse Leap 42.2就是这样),而这些工具也是比较常用的。

官网下载合适版本后,解压文件。

1
2
tar -zxvf [mongodb 安装包名字]                                                         #解压
mv [mongodb解压目录]/ /usr/local/mongodb #将解压包拷贝到指定目录

然后需要将bin目录添加到PATH路径中。在Linux中修改PATH应该修改 /etc 目录下的profile.local文件,具体根据发行版不一可能会有差异。将以下语句写到配置文件的最末行:

1
export PATH=$PATH:<mongodb安装目录>/bin

启动数据库服务

MongoDB数据库的默认位置是 /data/db,如果你要使用这个位置,需要手动创建这个目录。但一般我会使用其他目录,这时在启动数据库服务时,需要指定数据库路径(—dbpath)。

所以,这个过程大概是这样的:

1
2
cd ~/workspace/mongodb
mongod --dbpath ./

不论对数据库进行什么操作,数据库服务必须处于运行状态。

Mongodb后台管理Shell

在终端中运行mongo命令,就可以进入后台管理Shell。MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。

当进入MongoDB数据库后台后,它会默认连接到test数据库。

Mongodb后台Shell中的命令与Pymongo中的命令大体一致,Shell中的命令使用不再赘述。详细可以查看菜鸟教程中的MongoDB教程

导入示例数据库

为了学习如何操作数据,首先,需要有一些数据。通过以下步骤导入mongodb官方的示例数据库。

下载示例数据

下载地址为:https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json
保存成名为primer-dataset.json的文件。

将数据导入到集合中

在系统终端中,使用mongoimport把刚才下载的文件中的数据导入到一个名为restaurants的集合中,该集合在test数据库里。如果已经存在名为restaurants的集合,下面的命令会删除这个集合并重新导入。

1
mongoimport --db test --collection restaurants --drop --file ~/downloads/primer-dataset.json

To Be Continued… …

谢谢支持!
0%