一文说通MongoDB via Python操作

Python并不仅仅是一个做Machine Learning的语言。

说到Python,一般都会感觉它关联着ML,如果不是做ML开发,就会觉得离自己很远。而实际上,作为一门语言,Python在应用中跟别的语言没什么区别,甚至在某些时间,它的方便会让人感觉很舒服。

试想一下,有个小需求,需要临时改一些数据库的数据。怎么搞?直接写数据库脚本?麻烦。开个IDE写段代码?更麻烦。这时候,有Python就很爽了 --- 随便开个Notepad或VIM,写段代码,就搞定了。

很方便,有没有?

所以,不管做什么样的开发,了解一点Python,还是有点意义的。

今天我们就整理一个知识点:Python操作MongoDB数据库。

    为了防止不提供原网址的转载,特在这里加上原文链接:https://www.cnblogs.com/tiger-wang/p/13216977.html

一、运行准备

首先,我们需要有Python3 。现在Python全线从v2转为v3,如果还停留在v2的年代,不妨升一下级。

Python3的安装不详细说,官网在https://www.python.org。

检查是否安装Python3,可以用以下命令:

% python3 --version
Python 3.7.4

如果安装了,会返回Python3的版本号。我装的是3.7.4 。

Python操作MongoDB数据库,需要PyMongo库的支持。

% pip install pymongo

或者

% python3 -m pip install pymongo

pip是Python全系的软件包管理工具,类似于Ubuntu/Debian的apt、Centos的rpm、MacOS的brew。

新安装的Python3,可能没有pip命令。检查一下:

% pip --version

同样,如果有安装,会返回pip的版本号。

如果没有安装,以下是命令:

% curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
% python3 get-pip.py

也可以去pip官网自行查找安装。官网在https://pip.pypa.io/en/stable/

MongoDB也需要安装好。安装过程在文章15分钟从零开始搭建支持10w+用户的生产环境(二)里有详细的步骤,这儿略过。

这样,我们就准备好了全部的运行环境。

二、操作MongoDB 1. 连接串

MongoDB的连接串,在所有开发语言中都是一样的:

database_connection_uri = "mongodb://localhost:27031/admin"
2. 连接数据库

PyMongo提供了MongoClient用来连接MongoDB,并初始化对象。

client = pymongo.MongoClient(database_connection_uri)
3. 打开数据库和数据集 db = client["Test"]
collection = db["TestCollection"]

这个例子中,数据库叫Test,数据集Collection叫TestCollection 。

到这儿,数据集已经正常打开。

全部的代码如下:

#!/usr/local/bin python3
# -*- coding: UTF-8 -*-

import pymongo

database_connection_uri = "mongodb://localhost:27031/admin"

def main():

    client = pymongo.MongoClient(database_connection_uri)
    db = client["Test"]
    collection = db["TestCollection"]

    print("Success !!!")

if __name__ == '__main__':
    main()
4. 创建索引

MongoDB中,索引很关键。一个好的索引可以让上亿级的数据集查询在毫秒内出结果。

collection.create_index([("article_id", pymongo.ASCENDING)], background=True)

升序是pymongo.ASCENDING,降序是pymongo.DESCENDING。

看参数就知道,如果创建联合索引,就把字段名一个一个列出来:

collection.create_index([("article_id", pymongo.ASCENDING), ("action_time", pymongo.DESCENDING)], background=True)

在MongoDB中,索引可以在任何时候创建。

5. 创建数据

PyMongo所有数据采用Json数据。

Demo数据:

import datetime

article1 = {
    "article_id"1,
    "title""文章标题1",
    "body""文章内容1",
    "action_time": datetime.datetime.utcnow()
}

直接调用collection对象的insert命令创建数据:

result = collection.insert(article1)

创建成功后,会返回该数据文档的_id值。

看一下全部代码:

def main():

    client = pymongo.MongoClient(database_connection_uri)
    db = client["Test"]
    collection = db["TestCollection"]

    article1 = {
        "article_id"1,
        "title""文章标题1",
        "body""文章内容1",
        "action_time": datetime.datetime.utcnow()
    }

    result = collection.insert(article1)
    print(result)

也可以一次创建多条文档:

result = collection.insert([article1, article2])

注意那个中括号。

多条创建时,返回值result也是个列表,里面是所有创建记录的_id值。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdxzy.html