前提:
本教程假定MongoDB正在默认主机和端口上运行。假设您已经下载并安装了 MongoDB,您可以这样启动它:
$ mongod
一、安装pymongo
官方文档:https://api.mongodb.com/python/current/tutorial.html
pip install pymongo
安装完成后会在python的安装路径下的lib-->site-packages中生成下面2个文件
二、连接数据库
我的mongo数据库
使用PyMongo时的第一步是创建一个 MongoClient
实例。
>>> from pymongo import MongoClient
>>> client = MongoClient('localhost', 27017)
三、获取数据库
>>> db = client.test_database
如果您的数据库名称使用属性样式访问不起作用(例如test-database
),则可以使用字典样式访问:
>>> db = client['test-database']
四、获得集合
>>> collection = db.test_collection
或(使用字典样式访问):
>>> collection = db['test-collection']
关于MongoDB中的集合(和数据库)的一个重要注意事项是它们是懒惰创建的 - 上述命令都没有在MongoDB服务器上实际 执行过任何操作。将第一个文档插入其中时,将创建集合和数据库。
from pymongo import MongoClient
import datetime
import pprint
# 连接数据库
client = MongoClient('localhost', 27017)
# 获取数据库
db = client.test
# 获取集合
collection = db.singer
# 从集合中获取第一个文档
pprint.pprint(collection.find_one())
# 获取所有文档
data = collection.find()
# print(data)
# 通过遍历游标获取数据
for cur in data:
print(cur)
五、文件
使用JSON样式的文档表示(并存储)MongoDB中的数据。在PyMongo中,我们使用字典来表示文档。例如,以下字典可 能用于表示博客帖子:
>>> import datetime
>>> post = {"author": "Mike",
... "text": "My first blog post!",
... "tags": ["mongodb", "python", "pymongo"],
... "date": datetime.datetime.utcnow()}
请注意,文档可以包含本机Python类型(如datetime.datetime
实例),这些类型 将自动转换为适当的BSON类型。
六、插入文档
要将文档插入集合,我们可以使用以下 insert_one()
方法:
>>> posts = db.posts
>>> post_id = posts.insert_one(post).inserted_id
>>> post_id
ObjectId('...')
插入文档时"_id"
,如果文档尚未包含"_id"
密钥,则会自动添加特殊键。"_id"
整个集合中的值必须是唯一的。 insert_one()
返回一个实例InsertOneResult
。有关更多信息"_id"
,请参阅_id上的文档。
插入第一个文档后,实际上已在服务器上创建了posts集合。我们可以通过列出我们数据库中的所有集合来验证这一点:
>>> db.list_collection_names()
[u'posts']
db.admin.insert_one({ "name':"caocao", "age":998 })