Python mongoDB 的简单操作

#!/usr/bin/env python
# coding:utf-8
# Filename:mongodb.py

from pymongo import MongoClient,ASCENDING,DESCENDING
import datetime

# connection with mongoclient
client=MongoClient()

# getting a database
db=client.test

# getting a collection
collection=db.posts

# documents
post={"author":"Mike",
      "test":"My first blog post!",
      "tags":["mongodb","python","pymongo"],
      "date":datetime.datetime.utcnow()
}

# inserting a document
post_id=collection.insert(post)
print 'posts id is:',post_id
print 'collection_names is:',db.collection_names()

# getting a single document
doc=db.posts.find_one()
print doc

#query by objectId
print 'query is:', db.posts.find_one({"_id":post_id})

# querying for more than one doc
for post in db.posts.find():
    print post

# counting
print 'total count is:',db.posts.count()

# range queries
d=datetime.datetime(2014,8,9,12)
for post in db.posts.find({"date":{"$gt":d}}).sort("author"):
    print 'gt is:',post

# Indexing
# before indexing
print db.posts.find({"date":{"$gt":d}}).sort("author").explain()["cursor"]
print db.posts.find({"date":{"$gt":d}}).sort("author").explain()["nscanned"]
# after indexing
db.posts.create_index([("date",DESCENDING),("author",ASCENDING)])
print db.posts.find({"date":{"$gt":d}}).sort("author").explain()["cursor"]
print db.posts.find({"date":{"$gt":d}}).sort("author").explain()["nscanned"]

# remove all indexes
db.posts.drop_indexes()

 

posted @ 2014-08-09 20:37  ibg  阅读(497)  评论(0编辑  收藏  举报