文档章节

python mongodb

hyhlinux
 hyhlinux
发布于 2016/12/11 17:27
字数 449
阅读 21
收藏 0

#coding:utf-8
import json
from pymongo import MongoClient
from datetime import datetime
from bson.code import Code

client = MongoClient(host='127.0.0.1', port=27017)
db = client.test
# #insert
# result = db.restaurants.insert_one(
#     {
#         "address": {
#             "street": "2 Avenue",
#             "zipcode": "10075",
#             "building": "1480",
#             "coord": [-73.9557413, 40.7720266]
#         },
#         "borough": "Manhattan",
#         "cuisine": "Italian",
#         "grades": [
#             {
#                 "date": datetime.strptime("2014-10-01", "%Y-%m-%d"),
#                 "grade": "A",
#                 "score": 11
#             },
#             {
#                 "date": datetime.strptime("2014-01-16", "%Y-%m-%d"),
#                 "grade": "B",
#                 "score": 17
#             }
#         ],
#         "name": "Vella",
#         "restaurant_id": "41704620"
#     }
# )
# print result.inserted_id

#query
cursor = db.restaurants.find({"borough": "Manhattan"})
ret = []
"""
{
u'cuisine': u'Italian', 
u'borough': u'Manhattan', 
u'name': u'Vella', 
u'restaurant_id': u'41704620', 
u'grades': [
    {
        u'date': datetime.datetime(2014, 10, 1, 0, 0), 
        u'grade': u'A', u'score': 11
    }, 
    {
        u'date': datetime.datetime(2014, 1, 16, 0, 0), 
        u'grade': u'B', u'score': 17
    }
], 
u'address': {
    u'building': u'1480', 
    u'street': u'2 Avenue', 
    u'zipcode': u'10075', 
    u'coord': [-73.9557413, 40.7720266]
}, 
u'_id': ObjectId('584d1239678f862910189391')
}
-------------
('ret', 
[
'{
    "cuisine": "Italian", 
    "borough": "Manhattan", 
    "name": "Vella", 
    "restaurant_id": "41704620", 
    "grades": [
        {"date": "2014-10-01 00:00:00", "grade": "A", "score": 11}, 
        {"date": "2014-01-16 00:00:00", "grade": "B", "score": 17}
    ], 
    "address": {
        "building": "1480", 
        "street": "2 Avenue", 
        "zipcode": "10075", 
        "coord": [-73.9557413, 40.7720266]
    }, 
    "_id": "584d1239678f862910189391"
}'
]
)
"""
for document in cursor:
    # del document['_id']
    document['_id'] = str(document['_id'])
    # del document['grades']
    for item in  document['grades']:
        # print ('item:', item)
        item['date'] = datetime.strftime(item['date'],'%Y-%m-%d %H:%M:%S')
    # print(document)
    item = json.dumps(document)
    ret.append(item)

print ('ret', ret)


# cursor = db.restaurants.find({"grades.grade": "B"})
# for document in cursor:
#   print(document)


# Logical AND
# cursor = db.restaurants.find({"cuisine": "Italian", "address.zipcode": "10075"})
# for document in cursor:
#     print(document)

# Logical OR
# cursor = db.restaurants.find(
#     {"$or": [{"cuisine": "Italian"}, {"address.zipcode": "10075"}]})


# for document in cursor:
#     print(document)

# Update Top-Level Fields

# result = db.restaurants.update_one(
#     {"name": "Vella"},
#     {
#         "$set": {
#             "cuisine": "American (New)"
#         },
#         "$currentDate": {"lastModified": True}
#     }
# )
# print result.matched_count
# result = db.restaurants.update_one(
#     {"restaurant_id": "41704620"},
#     {"$set": {"address.street": "East 31st Street"}}
# )
# print result.matched_count

# Remove Data with PyMongo
# result = db.restaurants.delete_many({"borough": "Manhattan"})
# print result.deleted_count
# result = db.restaurants.delete_many({})

# Data Aggregation with PyMongo
# cursor = db.restaurants.aggregate(
#     [
#         {"$group": {"_id": "$borough", "count": {"$sum": 1}}}
#     ]
# )
# for document in cursor:
#     print(document)

# map-reduce
db = client.mp
# result = db.restaurants.insert([
#     {
#         "_id":1,
#         "cust_id":'marong',
#         "status":'A',
#         "items":[{
#             "sku":'mmm',
#             "qty":5,
#             "price":2.5
#         },{
#             "sku":'nnn',
#             "qty":5,
#             "price":2.5
#         }]
#     },
#     {
#         "_id":2,
#         "cust_id":'marong',
#         "status":'B',
#         "items":[{
#             "sku":'mmm',
#             "qty":5,
#             "price":3
#         },{
#             "sku":'nnn',
#             "qty":5,
#             "price":3
#         }]
#     },
# ])
# print result
mapper=Code(
"""
function () {
var key = this.cust_id
var value = 0;
for (var idx = 0; idx < this.items.length; idx++){
   value += this.items[idx].qty * this.items[idx].price;
}
emit(key, value);
}
""")
reducer= Code(
"""
function (key, values) {
return Array.sum(values);
}
""")
# print mapper, reducer
# coursor = db.restaurants.map_reduce(map=mapper, reduce=reducer, out="map_reduce_example")

# print coursor
# for x in coursor.find():
#     print x
# Collection(Database(MongoClient(host=['tplinux.cn:27017'], document_class=dict, tz_aware=False, connect=True), u'mp'), u'map_reduce_example')
# {u'_id': u'marong', u'value': 55.0}


 

 

© 著作权归作者所有

共有 人打赏支持
hyhlinux
粉丝 7
博文 167
码字总数 51777
作品 0
海淀
程序员
大数据分析挖掘学习方向?数据分析师的就业前景怎么样?

加米谷数据分析挖掘课程明细,从理论到云端实操环境到项目实战,手把手教您从0掌握数据分析与挖掘技术,带您走进数据时代。 第一阶段(python基础) python入门:1、Python版本特性介绍2、P...

加米谷大数据
04/17
0
0
MongoDB在Ubuntu10.04下的单机性能测试

MongoDB是一个基于分布式文件存储的数据库开源项目。由C++语言编写。旨在为WEB应用提供可护展的高性能数据存储解决方案。它比纯noSQL数据库查询功能强悍,比关系数据库更面向集合。 测试的硬...

岭南六少
2011/08/06
0
0
Mongodb python驱动教程

Mongodb python驱动教程 安装 使用python驱动mongodb需要下载、安装PyMongo包 Windows用户,点击这里下载。 使用pip安装 在linux平台使用pip命令安装: 指定版本: 升级: `pip install --u...

youthflies
2014/04/30
0
0
在Ubuntu 12.04中配置分布式爬虫框架——Cola

Cola是一个用Python编写的分布式爬虫框架,其目的是为了方便分布式的部署,目前虽仍有很多不完善的地方,但仍然值得对其进行一番探索。本文将对Cola的运行环境配置进行一番较为详细的介绍。在...

鄂世嘉
2013/07/01
0
0
Python操作MongoDB - 极简教程

Python 连接 MongoDB 安装PyMongo模块 使用MongoClient建立连接 获取数据库 获取集合 上述任何命令都没有在MongoDB服务器上实际执行任何操作。当第一个文档插入集合时才创建集合和数据库。 ...

kangvcar
2017/11/02
0
2

没有更多内容

加载失败,请刷新页面

加载更多

启动线程以及安全终止线程

启动 使用start()方法可以启动线程。 start()方法的含义是告知线程规划器线程已初始化完毕,可以分给这个线程时间片了(执行run()方法)。 安全终止线程 示例代码 import java.util.concurr...

karma123
28分钟前
1
0
Python+OpenCV 图像风格迁移(模仿名画)

现在很多人都喜欢拍照(自拍)。有限的滤镜和装饰玩多了也会腻,所以就有 APP 提供了模仿名画风格的功能,比如 prisma、versa 等,可以把你的照片变成 梵高、毕加索、蒙克 等大师的风格。 这...

crossin
33分钟前
1
0
karabiner json语法

karabiner json语法 to_if_alone 如果同时制定了to, 那么to对应的key必须是非可见字符,例如control,shift或者command, 为什么呢? If to events are specified, to events are released befo...

黄威
34分钟前
1
0
学习设计模式——工厂方法模式

1. 认识工厂方法模式 1. 功能:定义一个用于创建对象的接口,让子类决定实例化哪一个类,该模式使一个类的实例化延迟到其子类中。 2. 组织结构: Product: 定义工厂方法中用来创建对象的接口...

江左煤郎
34分钟前
1
0
常用的大数据技术有哪些?

大数据技术为决策提供依据,在政府、企业、科研项目等决策中扮演着重要的角色,在社会治理和企业管理中起到了不容忽视的作用,很多国 家,如中国、美国以及欧盟等都已将大数据列入国家发展战...

董黎明
36分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部