Python 如何连接和使用 MongoDB

用 Python一段时间了,感觉很好,简洁带点美,喜欢上了,去年用php 写了一个能解析书写不规范的 html文档解析器,可以生成DOM,并还支持 CSS选择器查询,花了一天时间移植到了 python下,发现代码量减少了,结构更清晰了。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

下面我们来介绍一下如何使用 Python 连接 Mongodb,并执行一些常规操作。
要连接 MongoDB 需要用到 PyMongo

我们可以使用 Python 的 easy_install工具来安装 pymongo
sudo easy_install pymongo

在python代码中通过 import pymongo来导入相关模块

import pymongo
con = pymongo.Connection('127.0.0.1', 27017)
db = con['test_db']
# 返回 Collection
col = db['test_collection']

#插入对象,返回 _id
id = col.insert({
    'ID': 1,
    'category' : 1,
    'name': 'Name1',
    'detail': {
        'age': 5,
        'sex': 'male'
    }
})

#批量插入多个,返回插入的多个 _id
ids = col.insert([{
    'ID': 2,
    'category' : 1,
    'name': 'Name 2',
    'detail': {
        'age': 5,
        'sex': 'male'
    }
},{
    'ID': 3,
    'category' : 2,
    'name': 'Name 3',
    'detail': {
        'age': 6,
        'sex': 'female'
    }
},{
  'ID': 3,
  'category' : 3,
  'name': 'Name 44',
  'detail': {
	  'age': 6,
	  'sex': 'female'
  }
}])
print(ids)

# 返回一个 dict
doc = col.find_one({
    'ID': 1
})
print(doc)

#获取多个文档对象
docs = col.find({'category': 1})
for doc in docs:
    print doc


#删除
col.remove({'ID': 4})
col.remove({'_id': pymongo.objectid(ids[1])})

#更新,第一个参数是条件,第二个参数是内容
col.update({'ID': 2}, {'name': 'zpz.name'})
print(col.find_one({'ID' : 2}))

#批量更新多个,使用 multi=True
col.update({'category': 1}, {'sex': 'Female'},multi=True)
for doc in col.find():
	print(doc)

Post a Comment

Your email is never shared. Required fields are marked *

*
*