#!/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()