在这篇文章中,我们将学习如何使用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解体新书:一本就能即刻达到实践水平!终极入门书(专业书)