在这篇文章中,我们将学习如何使用Python操作MongoDB

前言

我开始学习Python的第二天。
因为我同时在学习Python和MongoDB,所以我决定一起学习,尝试使用Python来操作MongoDB。

在中文上本大都会,到底這些報導的內容有多廣泛?

在这篇文章中,我记录了如何使用Python连接MongoDB并获取数据库信息。我计划逐步创建针对集合的CRUD操作。

启动 MongoDB。

不会详细说明安装方法等。
以下命令将启动mongodb。

> mongod

开启控制台后,将输出以下类似的日志。

2019-08-07T20:46:55.219+0900 I NETWORK  [initandlisten] waiting for connections on port 27017

如果看到这个日志,表示MongoDB已经在27017端口接受连接。注意:27017端口是MongoDB的默认使用端口。

在本文中使用的MongoDB数据库和集合的内容如下所示。

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB
> show collections
employee
log
salary
> db.salary.find()
{ "_id" : ObjectId("5d4acf84de925ae437e2c123"), "name" : "山田", "salary" : 300000 }
{ "_id" : ObjectId("5d4acf84de925ae437e2c124"), "name" : "佐藤", "salary" : 400000 }
{ "_id" : ObjectId("5d4acf84de925ae437e2c125"), "name" : "田中", "salary" : 500000 }

安装pymongo

使用以下命令在Python中安装处理mongodb的库。

> pip install pymongo

尝试编写Python代码。

我马上尝试操作MongoDB。
我只需要获取数据库内存在的集合名称。

from pymongo import MongoClient

class MongoSample(object):

    def __init__(self, name):
        self.client = MongoClient()
        self.db = self.client[name] #DB名を設定

    def collection_names(self):
        return self.db.collection_names()

mongo = MongoSample('test')
print(mongo.collection_names())

执行结果

/python/MongoSample.py:17: DeprecationWarning: collection_names is deprecated. Use list_collection_names instead.
  return self.db.collection_names()
['employee', 'salary', 'log']

已成功获取,但出现了 DeprecationWarning。看起来 collection_names() 已被弃用,建议使用 list_collection_names()。

我将在MongoSample.py中添加定义并运行它。

from pymongo import MongoClient

class MongoSample(object):

    def __init__(self, name):
        self.client = MongoClient()
        self.db = self.client[name] #DB名を設定

    def collection_names(self):
        return self.db.collection_names()

    def list_collection_names(self):
        return self.db.list_collection_names()

mongo = MongoSample('test')
print(mongo.list_collection_names())

执行结果

['employee', 'salary', 'log']

這次能夠無需警告地獲取集合名稱。

请写下你的想法。
对此有何观点?
请分享你的感慨。

因为我很久没有学习除了Java以外的语言了,所以我感到有点奇怪,数据库操作真的这么简单吗?
在Java中,连接数据库通常使用Singleton模式,但Mongodb是怎样的呢?
如何控制事务呢?这些新问题让我感到很有趣,这是我的真实感受。

请参考

MongoDB API 文档
https://api.mongodb.com/python/current/api/index.html

书籍:MongoDB解体新书:一本就能即刻达到实践水平!终极入门书(专业书)

广告
将在 10 秒后关闭
bannerAds