python操作mongodb之基础操作
2016-06-22 23:27
627 查看
#coding:utf-8 __author__ = 'hdfs' import pymongo from pymongo import MongoClient client = MongoClient() client=MongoClient('10.0.0.9',27017) #连接mongodb数据库 client = MongoClient('mongodb://10.0.0.9:27017/') #指定数据库名称 db = client.test_database #获取非系统的集合 db.collection_names(include_system_collections=False) #获取集合名 posts = db.posts #查找单个文档 posts.find_one() #给定条件的一个文档 posts.find_one({"author": "Mike"}) #使用ID查找需要ObjectID from bson.objectid import ObjectId post_id='5728aaa96795e21b91c1aaf0' document = client.db.collection.find_one({'_id': ObjectId(post_id)}) import datetime new_posts = [{"author": "Mike", "text": "Another post!", "tags": ["bulk", "insert"], "date": datetime.datetime(2009, 11, 12, 11, 14)}, {"author": "Eliot", "title": "MongoDB is fun", "text": "and pretty easy too!", "date": datetime.datetime(2009, 11, 10, 10, 45)}] #插入多条记录 result = posts.insert_many(new_posts) #返回插入的ID result.inserted_ids #递归集合 for post in posts.find(): post #递归条件集合 for post in posts.find({"author": "Mike"}): post #文档的记录数 posts.count() #区间查询 d = datetime.datetime(2009, 11, 12, 12) for post in posts.find({"date": {"$lt": d}}).sort("author"): print post #给集合profiles建立索引 唯一索引 result = db.profiles.create_index([('user_id', pymongo.ASCENDING)],unique=True) #查看索引信息 list(db.profiles.index_information()) # user_profiles = [ {'user_id': 211, 'name': 'Luke'}, {'user_id': 212, 'name': 'Ziltoid'}] result = db.profiles.insert_many(user_profiles) #聚合查询 from pymongo import MongoClient db = MongoClient('mongodb://10.0.0.9:27017/').aggregation_example #准备数据 result = db.things.insert_many([{"x": 1, "tags": ["dog", "cat"]}, {"x": 2, "tags": ["cat"]}, {"x": 2, "tags": ["mouse", "cat", "dog"]}, {"x": 3, "tags": []}]) result.inserted_ids ''' { "_id" : ObjectId("576aaa973e5269020848cc7c"), "x" : 1, "tags" : [ "dog", "cat" ] } { "_id" : ObjectId("576aaa973e5269020848cc7d"), "x" : 2, "tags" : [ "cat" ] } { "_id" : ObjectId("576aaa973e5269020848cc7e"), "x" : 2, "tags" : [ "mouse", "cat", "dog" ] } { "_id" : ObjectId("576aaa973e5269020848cc7f"), "x" : 3, "tags" : [ ] } ''' from bson.son import SON #$unwind 解开-后面的变量 pipeline = [ {"$unwind": "$tags"}, {"$group": {"_id": "$tags", "count": {"$sum": 1}}}, {"$sort": SON([("count", -1), ("_id", -1)])} ] list(db.things.aggregate(pipeline)) #使用聚合函数with command db.command('aggregate', 'things', pipeline=pipeline, explain=True)
相关文章推荐
- mongodb分片部署和管理
- [MongoDB]对数组操作
- MongoDB 常用的命令
- mongodb基本操作及存储图片显示方案
- mongoDB学习笔记
- mongodb 集群分片布署
- MongoDB Plugin 1.0.3
- 关于mongodb3.x用户权限问题
- windows下mongodb数据库的安装
- MongoDB ——windows安装
- MongoDB之十大应用设计技巧
- 超越之MongDB系列教程(三)MongoDB 用户权限管理
- 集成 TerichDB 的 MongoDB 性能测试
- Mongodb的update操作
- MongoDB日期转换问题
- Mongodb-面向使用学习-基本操作-(改与删)
- Mongodb-面向使用学习-基本操作-(增与查)
- Java MongoDB
- MongoDB应用详解
- Java操作MongoDB增删改查工具Demo