您的位置:首页 > 数据库 > Mongodb

[bigdata-020]用python3+pymogo 操作 mongodb数据库

2017-01-03 17:46 429 查看
1. 安装pymongo

pip install pymongo

2. 写一个例子

#!/usr/bin/env python3
#! coding:utf-8 -*-

import pymongo
import time

client = pymongo.MongoClient('localhost', 27017)

db = client.get_database('user-behavior-data')
print(db.name)

backend = db.get_collection('backend')
backend.insert_one({"x":8})

backend.insert_many([{'y':15}, {'z':99}])

many_docs = []
for i in range(100000):
doc = {}
for t in 'abcdefghijklmnopqrstuvwxyz':
doc[t] = i
many_docs.append(doc)

t1 = time.time()
backend.insert_many(many_docs)
dt = time.time() - t1

print(dt)
client.close()


3. 文档
http://api.mongodb.com/python/current/index.html https://docs.mongodb.com/getting-started/python/update/
4. 性能

10万条复杂记录插入时间是2.5s,每秒4万条。性能可观。如果记录是单key的,可以更快,每秒10万条。

5. 更多的操作示范

#!/usr/bin/env python3
# !-*- coding:utf-8 -*-

import pymongo
import datetime

mongo_client = pymongo.MongoClient('114.55.xxx.xx')
mongo_db = mongo_client['db1']
mongo_db.authenticate('user1', '384')

#房天下对应的collections
ftx_table = mongo_db['ftx_table']

#插入一条记录
post = {"数据类型": "test",
"text": "My 1 blog post!",
"tags": ["mongodb", "python", "pymongo"],
"date": datetime.datetime.utcnow()}
id = ftx_table.insert_one(post).inserted_id
print('插入一条记录:', id)

# 插入多条记录
posts = [
{"数据类型": "test",
"text": "My 2 blog post!",
"tags": ["mongodb", "python", "pymongo"],
"date": datetime.datetime.utcnow()},
{"数据类型": "test",
"text": "3 blog post!",
"tags": ["mongodb", "python", "pymongo"],
"date": datetime.datetime.utcnow()}
]
ret = ftx_table.insert_many(posts)
print('插入多条记录:', ret.inserted_ids)

#查询一条记录
ret = ftx_table.find_one({'数据类型':'test'})
print('查询到一条记录:', ret)

#查询多条记录
ret = ftx_table.find({'数据类型':'test'})
print('查询多条记录:')
for i in ret:
print(i)

#更新记录
ftx_table.update_one({'数据类型':'test'},
{
'$set':{'text':'update ok!'}
})

#删除记录
ret = ftx_table.delete_many({'数据类型':'test'})
print('删除记录数量:',ret.deleted_count)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: