文档章节

python mongodb

hyhlinux
 hyhlinux
发布于 2016/12/11 17:27
字数 449
阅读 21
收藏 0
点赞 0
评论 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
博文 132
码字总数 51777
作品 0
海淀
程序员
大数据分析挖掘学习方向?数据分析师的就业前景怎么样?

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

加米谷大数据 ⋅ 04/17 ⋅ 0

Fedora上使用Python操作MongoDB学习笔记

1. 创建Python虚拟环境 Fedora中已经安装有Python2和Python3,可执行文件的目录在/usr/bin/目录下,其中软连接为 接下来采用Python3来操作MongoDB,因此为不污染原有的系统环境,以及隔离此特...

t_huanghai ⋅ 04/21 ⋅ 0

Python中MongoDB使用

MongoDB的层级为 database -->collection --> document 安装MongoDB,启动mongo服务 PyMongo模块是Python对MongoDB操作的接口包,主要实现对MongoDB的几种操作:增删改查以及排序等功能 安装...

鱼煎 ⋅ 05/31 ⋅ 0

趣说Mongodb和他的两个小伙伴

Mongodb的自述 大家好,我是Mongodb 在数据库家族众多兄弟中,大致可以分为关联性数据库和文档性数据库(NoSQL)两类,而我就属于后者。 近些年随着我的朋友Node慢慢变得愈发强大,我也受到了...

dali_saymore ⋅ 06/13 ⋅ 0

存储大量爬虫数据的数据库,了解一下?

"当然, 并不是所有数据都适合" 在学习爬虫的过程中, 遇到过不少坑. 今天这个坑可能以后你也会遇到, 随着爬取数据量的增加, 以及爬取的网站数据字段的变化, 以往在爬虫入门时使用的方法局限性...

fesoncn ⋅ 04/09 ⋅ 0

MongoDB-pymongo.errors.CursorNotFound: Cursor

python, python3. 先从数据库中取得所有数据 db['test'].find({},{_id:0}),然后对结果进行for循环 但是当do_something函数耗时过长,在cursor上长时间没有进行操作,引发cursor在mongodb...

寒月谷 ⋅ 05/16 ⋅ 0

一个月入门Python爬虫,快速获取大规模数据

数据是创造和决策的原材料,高质量的数据都价值不菲。而利用爬虫,我们可以获取大量的价值数据,经分析可以发挥巨大的价值,比如: 豆瓣、知乎:爬取优质答案,筛选出各话题下热门内容,探索...

Python开发者 ⋅ 04/25 ⋅ 0

MongoDB 4.0 RC 版本强势登陆

MongoDB 因其灵活的文档模型、可扩展分布式设计广受开发者喜爱,在此基础上,MongoDB 4.0 推出了更强大的功能支持,目前4.0第一个RC版本已经发布,本文将介绍 MongoDB 4.0 核心的一些新特性。...

张友东 ⋅ 05/30 ⋅ 0

python3 scrapy爬取智联招聘存mongodb

写在前面,这次写智联招聘的爬虫是其次,主要的是通过智联招聘上的数据信息弄一个数据挖掘的小项目,这一篇主要是如何一气呵成的将智联招聘上的招聘信息给爬下来 (一)scrapy框架的使用 sc...

徐代龙 ⋅ 05/01 ⋅ 0

Mongodb插入数据出现:E11000 duplicate key error collection:错误解决方案!

今天在保存数据到Mongodb的时候出现E11000 duplicate key error collection:错误 所有数据只有第一条可以正确insert E11000 duplicate key error collection:所提示的错误为集合唯一主键重复...

chbsxni ⋅ 06/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

sbt网络问题解决方案

http://dblab.xmu.edu.cn/blog/maven-network-problem/

狐狸老侠 ⋅ 10分钟前 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 54分钟前 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 59分钟前 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

Spring clound 组件

Spring Cloud技术应用从场景上可以分为两大类:润物无声类和独挑大梁类。 润物无声,融合在每个微服务中、依赖其它组件并为其提供服务。 Ribbon,客户端负载均衡,特性有区域亲和、重试机制。...

英雄有梦没死就别停 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部