作者:Zarten 知乎专栏:Python爬虫深入详解 知乎ID: Zarten 简介: 互联网一线工作者,尊重原创并欢迎评论留言指出不足之处,也希望多些关注和点赞是给作者最好的鼓励 !
介绍
MongoDB是一种面向文档型的非关系型数据库(NoSQL),由C++编写。非关系数据库中是以键值对存储,结构不固定,易存储,减少时间和空间的开销。文档型数据库通常是以JSON或XML格式存储数据,而Mongodb使用的数据结构是BSON(二进制JSON),和JSON相比,BSON提高了存储和扫描效率,但空间占用会更多一些。
在python中操作MongoDB,我们使用PyMongo,下面着重介绍。
PyMongo的使用
前提:安装了MongoDB服务器,若没有,点击这里安装
1.安装
pip3 install pymongo
2.连接
- 第1种方式:
#无密码连接
import pymongo
mongo_client = pymongo.MongoClient('127.0.0.1', 27017)
#有密码连接
import pymongo
mongo_client = pymongo.MongoClient('127.0.0.1', 26666)
mongo_auth = mongo_client.admin #或 mongo_client['admin'] admin为authenticationDatabase
mongo_auth.authenticate('用户名', '密码')
- 第2种方式:
#无密码连接
import pymongo
mongo_client = pymongo.MongoClient('mongodb://127.0.0.1:27017')
#有密码连接
import pymongo
import urllib.parse
mongo_username = urllib.parse.quote_plus('你的用户名')
mongo_password = urllib.parse.quote_plus('密码')
mongo_client = pymongo.MongoClient('mongodb://%s:%[email protected]:26666' % (mongo_username, mongo_password))
print(mongo_client.server_info()) #判断是否连接成功
判断是否连接成功:
print(mongo_client.server_info()) #判断是否连接成功
3.获取Database 和 Collection
若没有Database 和Collection,则会自动创建
第一种方式:
mongo_db = mongo_client['你的database']
mongo_collection = mongo_db['你的collection']
第二种方式:
mongo_db = mongo_client.你的database
mongo_collection = mongo_db.你的collection
CURD操作
4.插入单条数据 insert_one()
insert_one() 详细说明参考
import datetime
info = {
'name' : 'Zarten',
'text' : 'Inserting a Document',
'tags' : ['a', 'b', 'c'],
'date' : datetime.datetime.now()
}
mongo_collection.insert_one(info)
5.插入多条数据 insert_many()
insert_many() 详细说明参考
import datetime
info_1 = {
'name' : 'Zarten_1',
'text'