Python_关于pymongo与bso

发布时间:2019-07-24 09:50:17编辑:auto阅读(1606)

    PyMongo模块主页
    __PyMongo模块主页
    下载PyMongo模块时 它会有一个相对应bson模块 也就是说 PyMongo模块的实现是基于和它一起的bson模块的
    该bson模块 并非我们用 pip install bson 安装的 bson。
    当你的系统环境下 同时具备这两个模块时 PyMongo模块和bson模块的相对应功能便会挂掉 .
    比如说报错:ImportError: No module named bson.code
    解决方案:在需要bson模块时 将其下载好 放置自己项目的目录下 并改名使用
    如:
    这里写图片描述
    当然 如果你有更好的解决方法 欢迎指出
    **

    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 是作为一个对象存在的

    {
        "_id" : ObjectId("5ac2ea3226487ec74a18169a"),
        "phoneNum" : "13800000012",
        "fromId" : ObjectId("585b49d4391f526226d1aef6"),
        "tagCode" : "410910",
        "statisticsUpdatedAt" : 1522723378830.0,
        "isDeleted" : false,
        "updatedAt" : 1522723378826.0,
        "createdAt" : 1522723378826.0,
        "tagGroup" : {
            "id" : 68,
            "title" : "妇幼儿",
            "updatedAt" : 1522723378825.0
        },
        "hasBoughtSenior" : false,
        "marketing" : {
            "_id" : ObjectId("5ac2ea3226487ec74a18169a"),
            "cpsUpdatedAt" : 1522723378826.0,
            "lowestCost" : -1,
            "cps" : 0,
            "consumedMemberSize" : 0,
            "remainMemberSize" : 0,
            "checkinNum" : 0,
            "remainBalance" : 0,
            "balance" : 0
        },
        "shopProp" : 0,
        "shopLocation" : [ 
            0, 
            0
        ]
    }

关键字