python连接mongo_Python连接和使用MongoDB

MongoDB相对于传统的关系型数据库,可以存储JSON数据,非常适合存储数据抓取返回的JSON数据。先前介绍过MongoDB在Windows的安装,今天主要学习的是使用Python连接MongoDB,并进行增删改查的操作。

在连接MongoDB前 首先要安装的是Python包:PyMongo,包的安装非常的简单。只需执行pip install pymongo 即可。

创建连接

在安装完PyMongo以后,使用Python连接MongoDB变得异常简单。具体方式为:

from pymongo import MongoClient

client = MongoClient('localhost', 27017)

或使用如下方式:

from pymongo import MongoClient

client = MongoClient('mongodb://localhost:27017')

连接数据库

连接数据库的操作也非常的简单,最为重要的是,在你连接数据库之前无需先创建数据库,如果数据库存在则直接连接,如果数据库不存在则会创建新的库。具体方式为:

# 方式一

db = client.pymongo_test

# 方式二

db = client['pymongo_test']

以上两种方式任选一种即可。

Collection概念

在MongoDB中存在一个Collection的概念,我将其理解为命名空间,类似其他数据库中Scheme的概念,Collection可以理解为一些表的集合。Collection可以使用也可以不使用,具体看你是否要给库下的表分类。相关的操作:

#方法一:

collection = db.test_collection

#方法二

collection = db['test-collection']

需要知晓的是,collection的创建是在第一张表创建时才会创建。

插入数据

插入数据的方式的凡是非常的简单,最长使用的方法是,insert_one()和inert_many()方法,从字面上就可以看出来一个是插入一条数据,另外一个是插入多条数据,示例:

from pymongo import MongoClient

client = MongoClient('localhost', 27017)

db = client.testdb

posts = db.posts

post_1 = {

'title': 'Python and MongoDB',

'content': 'PyMongo is fun, you guys',

'author': 'Scott'

}

post_2 = {

'title': 'Virtual Environments',

'content': 'Use virtual environments, you guys',

'author': 'Scott'

}

post_3 = {

'title': 'Learning Python',

'content': 'Learn Python, it is easy',

'author': 'Bill'

}

#每次插入一条数据

posts.insert_one(post_1)

posts.insert_one(post_2)

posts.insert_one(post_3)

#一次插入多条数据

posts.insert_many([post_1, post_2, post_3])

查询数据

和插入数据一样,查询数据的时候,提供查询一条或多条数据的方法,方法分别为find_one()和find()。示例:

# 查询一条数据

bills_post = posts.find_one({'author': 'Bill'})

print(bills_post)

# 查询多条数据

scotts_posts = posts.find({'author': 'Scott'})

for post in scotts_posts:

print(post)

另外条件中如需支持类似的关系数据库中的WHERE条件,需要使用特定的关键词。示例:

d = datetime.datetime(2009, 11, 12, 12)

for post in posts.find({"date": {"$lt": d}}).sort("author"):

pprint.pprint(post)

删除数据

更新数据

更新数据的主要方法是,update_one()和update_many(),除此之外,还有一个replace_one()方法用来替换,由于用的不多,具体看文档。

创建索引

pyMongo还支持创建索引,可以进一步提升查询的性能,示例:

result = db.profiles.create_index([('user_id', pymongo.ASCENDING)],unique=True)

sorted(list(db.profiles.index_information()))

参考链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值