zoukankan      html  css  js  c++  java
  • 根据_id 更新查询mongo 数据

    _id 是mongo 的对象,python从mongo中读出来的数据类型是str 或者object 类

    _id 是str类型时存在使用_id 更新数据失败的情况

    解决办法 时导入 bson 里面的  ObjectId

    import pandas as pd
    import pymongo
    from bson import ObjectId
    client = pymongo.MongoClient().history_event_old['time_info']
    path = 'history_event_old.xlsx'
    df = pd.read_excel(path, keep_default_na=False)
    values = df.values
    for data in values:
        _id = data[0]
        print(_id)
        start_time = data[2]
        end_time = data[3]
        client.update_one({"_id": ObjectId(_id)}, {"$set": {"开始时间": start_time, '结束时间': end_time}})

    bson模块

    是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型;
    BSON有三个特点:轻量性、可遍历性、高效性,但是空间利用率不是很理想
    MongoDB使用了BSON这种结构来存储数据和网络数据交换;
    比如
    这是MongoDB 中的一条记录 也是 一个简单的BSON结构体,其中每一个element都是由key/value对组成的
    把这种格式转化成文档这个概念(Document),因为BSON是schema-free的,所以在MongoDB中所对应的文档也有这个特征 ;
    Document可以嵌套 如 key: tagGroup marketing 是作为一个对象存在的

  • 相关阅读:
    [LeetCode] Range Sum Query
    [LeetCode] Additive Number
    [LeetCode] Number of Islands II
    [LeetCode] Range Sum Query 2D
    [LeetCode] Range Sum Query
    [LeetCode] Smallest Rectangle Enclosing Black Pixels
    [LeetCode] Longest Increasing Subsequence
    [LeetCode] Bulls and Cows
    [LeetCode] Binary Tree Longest Consecutive Sequence
    [LeetCode] Serialize and Deserialize Binary Tree
  • 原文地址:https://www.cnblogs.com/lqn404/p/13885072.html
Copyright © 2011-2022 走看看