[bigdata-020]用python3+pymogo 操作 mongodb数据库
发布时间:2020-12-14 01:21:53 所属栏目:大数据 来源:网络整理
导读:1. 安装pymongo pip install pymongo 2. 写一个例子 #!/usr/bin/env python3#! coding:utf-8 -*-import pymongoimport timeclient = pymongo.MongoClient('localhost',27017)db = client.get_database('user-behavior-data')print(db.name)backend = db.get_
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!","date": datetime.datetime.utcnow()},{"数据类型": "test","text": "3 blog post!","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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |