1.新建连接
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
#client = MongoClient('mongodb://localhost:27017/')
db = client.test_database
#db = client['test-database']
2.插入
db.posts.insert(postjson)
#datetime.datetime.utcnow() 时间用这个方法
3.查看有哪些表
print db.collection_names()
[u'system.indexes,u'posts']
4.使用 find_one() 查找一个确定的文档,或者只想返回第一个匹配的文档。找不到返回None
5.查找_id
from bson.objectid import ObjectId
find_one({'_id': ObjectId(post_id)})
6.编码问题
bson 是字符是utf8编码的str,所以pymongo只支持utf8的数据,普通的str类型会直接存,unicode类型会首先转成utf8字符串
7.批量插入
a=[{..},{...}]
db.posts.insert(a)
#结果[ObjectId('...'), ObjectId('...')]
8.查询
for post in posts.find({"author": "Mike"}):
... post
posts.count()
posts.find({"author": "Mike"}).count()
d = datetime.datetime(2009, 11, 12, 12)
for post in posts.find({"date": {"$lt": d}}).sort("author"):
print post
类似的高级查询:
$gt $gte $in $lt $lte $ne $nin
$or $and $not $nor
$existe $type
$mod $regex $text $where
$all $elemMatch $size $slice
查询具体参照:http://docs.mongodb.org/manual/reference/operator/query/
更新参照:http://docs.mongodb.org/manual/reference/operator/update/
9.索引
posts.create_index([("date", DESCENDING), ("author", ASCENDING)])