在关于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 }
]
}
它们看起来很接近,但也有一些区别:日期和小数点是共同的区别。让我们比较一下每种类型。












原文标题: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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




