zoukankan      html  css  js  c++  java
  • python-pymongo使用

     1 #-*- coding: utf-8 -*-
     2 #python2.7x
     3 
     4 from pymongo import MongoClient
     5 
     6 def get_db():
     7     #建立连接
     8     client = MongoClient("localhost", 27017)
     9     #test,还有其他写法
    10     db = client.test
    11     return db
    12 
    13 def get_collection(db):
    14     #选择集合(mongo中collection和database都是lazy创建的,具体可以google下)
    15     collection = db['posts']
    16     print collection
    17 
    18 def insert_one_doc(db):
    19     #插入一个document
    20     posts = db.posts
    21     post = {"name":"lzz", "age":25, "weight":"55"}
    22     post_id = posts.insert(post)
    23     print post_id
    24 
    25 def insert_mulit_docs(db):
    26     #批量插入documents,插入一个数组
    27     posts = db.posts
    28     post = [ {"name":"nine", "age":28, "weight":"55"},
    29                  {"name":"jack", "age":25, "weight":"55"}]
    30     obj_ids = posts.insert(post)
    31     print obj_ids
    32 
    33 ##查询,可以对整个集合查询,可以根ObjectId查询,可以根据某个字段查询等
    34 def get_all_colls(db):
    35     #获得一个数据库中的所有集合名称
    36     print db.collection_names()
    37 
    38 def get_one_doc(db):
    39     #有就返回一个,没有就返回None
    40     posts = db.posts
    41     print posts.find_one()
    42     print posts.find_one({"name":"jack"})
    43     print posts.find_one({"name":"None"})
    44     return
    45 
    46 def get_one_by_id(db):
    47     #通过objectid来查找一个doc
    48     posts = db.posts
    49     obj = posts.find_one()
    50     obj_id = obj["_id"]
    51     print "_id 为ObjectId类型 :"
    52     print posts.find_one({"_id":obj_id})
    53     #需要注意这里的obj_id是一个对象,不是一个str,使用str类型作为_id的值无法找到记录
    54     print "_id 为str类型 "
    55     print posts.find_one({"_id":str(obj_id)})
    56 
    57     #可以通过ObjectId方法把str转成ObjectId类型
    58     from bson.objectid import ObjectId
    59     print "_id 转换成ObjectId类型"
    60     print posts.find_one({"_id":ObjectId(str(obj_id))})
    61 
    62 def get_many_docs(db):
    63     #mongo中提供了过滤查找的方法,可以通过各
    64     #种条件筛选来获取数据集,还可以对数据进行计数,排序等处理
    65     posts = db.posts
    66     #所有数据,按年龄排序, -1是倒序
    67     all =  posts.find().sort("age", -1)
    68 
    69     count = posts.count()
    70     print "集合中所有数据 %s个"%int(count)
    71     for i in all:
    72         print i
    73 
    74     #条件查询
    75     count = posts.find({"name":"lzz"}).count()
    76     print "lzz: %s"%count
    77     for i in  posts.find({"name":"lzz", "age":{"$lt":20}}):
    78         print i
    79 
    80 def clear_coll_datas(db):
    81     #清空一个集合中的所有数据
    82     db.posts.remove({})
    83 
    84 if __name__ == "__main__":
    85     db = get_db()
    86     obj_id = insert_one_doc(db)
    87     obj_ids = insert_mulit_docs(db)
    88     #get_all_colls(db)
    89     #get_one_doc(db)
    90     #get_one_by_id(db)
    91     #get_many_docs(db)
    92     clear_coll_datas(db)
  • 相关阅读:
    在 2016 年学 JavaScript 是一种什么样的体验?
    在 2016 年学 JavaScript 是一种什么样的体验?
    Oracle数据库,内置函数小结
    Oracle数据库,内置函数小结
    Oracle数据库,内置函数小结
    Oracle数据库,内置函数小结
    Bogon
    Bogon
    MariaDB Galera Cluster集群优缺点
    如何设置jquery的ajax方法为同步
  • 原文地址:https://www.cnblogs.com/chengyunshen/p/7196156.html
Copyright © 2011-2022 走看看