暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MongoDB到Couchbase(第3部分):数据类型

原创 eternity 2022-08-12
721

在关于MongoDB和Couchbase数据库对象的文章中,我们看到了从数据库到存储桶、从集合到集合、从文档到文档以及从字段到字段的映射。数据本身存储在这些字段中。{“字段”:“值”}通常称为键值对。每个键都有一个值,该值就是数据。该值自描述MongoDB和Couchbase中BSON或JSON定义下的数据

MongoDB使用BSON,Couchbase使用JSON——两者都是面向文档和基于JSON的。Couchbase完全使用JSON,MongoDB使用扩展JSON,称为BSON,即二进制JSON。

作为数据重构的一部分,当从关系模型移动到JSON模型时,您必须考虑数据类型映射。在Oracle中,在加载数据或编写查询之前,必须显式创建和声明每个列的类型。在Couchbase中,您只需遵循JSON语法,数据类型解释是自动和隐式的。下面是对这些数据类型的映射、转换和算法的概述。

这是MongoDB中的一个示例文档。

{
    "Name" : "Jane Smith",
    "DOB"  : "1990-01-30",
    "created": ISODate("2019-12-19T06:01:17.171Z"),
    "Billing" : [
        {
            "type"    : "visa",
            "cardnum" : "5827-2842-2847-3909",
            "expiry"  : "2019-03"
        },
        {
            "type"    : "master",
            "cardnum" : "6274-2842-2847-3909",
            "expiry"  : "2019-03"
        }
    ],
    "Connections" : [
        {
            "CustId"   : "XYZ987",
            "Name"     : "Joe Smith"
        },
        {
            "CustId"   : "PQR823",
            "Name"     : "Dylan Smith"
        },
        {
            "CustId"   : "PQR823",
            "Name"     : "Dylan Smith"
        }
    ],
    "Purchases" : [
        { "id":12, item: "mac",   "amt": Decimal128("2823.52") },
        { "id":19, item: "ipad2", "amt": Decimal128("623.52") }
   ]
}

让我们将其转换为Couchbase文档

{
    "Name" : "Jane Smith",
    "DOB"  : "1990-01-30",
    “Created": "2019-12-19T06:01:17.171Z",
    "Billing" : [
        {
            "type"    : "visa",
            "cardnum" : "5827-2842-2847-3909",
            "expiry"  : "2019-03"
        },
        {
            "type"    : "master",
            "cardnum" : "6274-2842-2847-3909",
            "expiry"  : "2019-03"
        }
    ],
    "Connections" : [
        {
            "CustId"   : "XYZ987",
            "Name"     : "Joe Smith"
        },
        {
            "CustId"   : "PQR823",
            "Name"     : "Dylan Smith"
        },
        {
            "CustId"   : "PQR823",
            "Name"     : "Dylan Smith"
        }
    ],
    "Purchases" : [
        { "id":12, item: "mac",   "amt": 2823.52 },
        { "id":19, item: "ipad2", "amt": 623.52 }
   ]
}

它们看起来很接近,但也有一些区别:日期和小数点是共同的区别。让我们比较一下每种类型。

微信图片_20220811162304.png

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

原文标题:MongoDB to Couchbase (Part 3): Data Types
原文作者:Keshav Murthy
原文链接:https://dzone.com/articles/mongodb-to-couchbase-for-developers-part-3-data-types

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论