Python_关于pymongo与bso

2023-01-31 01:01:23 python

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
    ]
}

相关文章