文档章节

python mongodb

hyhlinux
 hyhlinux
发布于 2016/12/11 17:27
字数 449
阅读 22
收藏 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
使用python语言操作MongoDB

MongoDB是一个跨平台的NoSQL,基于Key-Value形式保存数据。其储存格式非常类似于Python的字典,因此用Python操作MongoDB会非常的容易。 pymongo的两种安装命令 pip install pymongo easy_ins...

mickelfeng
2017/10/18
0
0
djongo:Django和MongoDB连接器

在Django项目中使用MongoDB作为后端数据库,且不改变Django的ORM框架。实现Django用户管理程序对MongoDB数据库中文件的增加和修改。 用法 1.pip install djongo 2.在Django项目下的setting.p...

p柯西
06/20
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

没有更多内容

加载失败,请刷新页面

加载更多

微服务分布式事务实现

https://www.processon.com/view/link/5b2144d7e4b001a14d3d2d30

WALK_MAN
16分钟前
0
0
《大漠烟尘》读书笔记及读后感文章3700字

《大漠烟尘》读书笔记及读后感文章3700字: 在这个浮躁的社会里,你有多久没有好好读完一本书了? 我们总觉得自己和别人不一样,所以当看到别人身上的问题时,很少有“反求诸己”,反思自己。...

原创小博客
51分钟前
1
0
大数据教程(9.5)用MR实现sql中的jion逻辑

上一篇博客讲解了使用jar -jar的方式来运行提交MR程序,以及通过修改YarnRunner的源码来实现MR的windows开发环境提交到集群的方式。本篇博主将分享sql中常见的join操作。 一、需求 订单数据表...

em_aaron
59分钟前
1
0
十万个为什么之什么是resultful规范

起源 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点...

尾生
今天
1
0
Terraform配置文件(Terraform configuration)

Terraform配置文件 翻译自Terraform Configuration Terraform用文本文件来描述设备、设置变量。这些文件被称为Terraform配置文件,以.tf结尾。这一部分将讲述Terraform配置文件的加载与格式。...

buddie
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部