文档模型(JSON)使用介绍

本文介绍了SequoiaDB作为分布式文档类数据库,其基于JSON的数据模型,支持灵活的数据结构。通过场景设计展示了购物车应用的数据模型,并详细解释了增加商品、删除商品、增加商品数量等JSON API的实现。SequoiaDB的JSON模型简化了数据处理,提高了开发效率。
摘要由CSDN通过智能技术生成

一、背景

E.F.Codd1970年首次提出了数据库系统的关系模型,从此开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础,数据库技术也开始蓬勃发展。而随着几大数据库厂商陆续发布的商业数据库管理系统几乎都支持关系数据模型,数据库技术逐渐统一到以关系型数据库为主导。

2001年后,互联网技术迅速发展,数据量迅速膨胀并并大,人类逐步进入大数据时代。大数据给传统的数据管理方式带来了严峻的挑战,关系型数据库在容量,性能,成本等多方面都难以满足大数据管理的需求。NoSQL数据库通过折中关系型数据库严格的数据一致性管理,在可扩展性、模型灵活性、经济性和访问性等方面获得了很大的优势,可以更好地适应大数据应用的需求,成为大数据时代最重要的数据管理技术。

二、产品介绍

SequoiaDB是新一代分布式文档类数据库其数据模型为文档模型JSON),而非传统的关系型数据模型。关系模型以二维表来表示实体与实体之间的联系,在数据建模时需要对数据对象进行拆分,再将各自的信息存到对应的表里,在需要时再将各个表连接起来。而巨杉数据库以一个文档为单位进行存储,支持数组和文档嵌套,关系模型中需要拆分的信息可以直接用一个文档来表示。

JSONJavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集,为纯文本格式,支持嵌套结构与数组。

JSON 具有如下形式:

1对象是一个无序的键值对集合,以“{”(左大括号)开始,“}”(右大括号)结束。每一个元素名后跟一个“:”(冒号);而元素之间使用“,”(逗号)分隔;

 

2数组是值的有序集合,以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔;

                     

 

3值可以为由双引号包裹的字符串,数值,对象,数组,truefalsenull,以及 SequoiaDB 数据库特有的数据结构(例如日期,时间等)组成。

 

三、场景设计

文档模型应用场景非常广泛,这里以一个大家比较熟悉且经常会用到的一个场景——购物车为例,介绍文档模型的使用。

购物车是网上购物时存放感兴趣商品的虚拟篮子,打开购物车,通常希望看到各个商品的概要信息,如所属店铺名称、商品名称、价格、数量等,若商品是服装,可能还需要展示尺码、颜色等属性信息。

当我们用文档模型来表达购物车应用时,一种参考数据模型如下所示:

{

  "_id": {

    "$oid": "57b44b2b2b57085321000001"

  },

  "items": [

    {

      "shopid": 8224,

      "picture": "http://www.sequoiadb.com/product.jpg",

      "amount": 1,

      "price": "117.59",

      "itemname": "Coffee",

      "itemid": 194987

    },

    {

      "shopid": 9291,

      "attribute": [

        {

          "color": "Blue",

          "size": "M"

        },

        {

          "color": "Pink",

          "size": "M"

        }

      ],

      "picture": "http://www.sequoiadb.com/product.jpg",

      "amount": 2,

      "price": "17.63",

      "itemname": "T-shirt",

      "itemid": 543514

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 加载三维模型json通常需要借助于三维图形渲染引擎或者相关的库。以下是一种常见的方式: 首先,需要准备一个包含三维模型JSON文件。该文件应该包含有关模型的几何信息、材质信息、贴图和动画等。确保JSON文件的格式正确,并且模型文件和贴图文件的路径正确。 然后,选择一种适合的三维图形渲染引擎或者相关的库。一些流行的选择包括Three.js、Babylon.js、A-Frame和Cesium等。 接下来,根据所选择的引擎或库的文档,按照指南设置一个渲染场景。这通常包括创建一个渲染器、相机和场景,以及设置光照和其他效果。 在渲染场景创建完成后,使用引擎或库提供的加载函数,读取三维模型JSON文件。这些函数通常会接受文件路径或URL作为参数,并返回一个代表加载的模型的对象。 加载完成后,可以对模型进行一些操作,例如设置其位置、旋转和缩放等。也可以添加一些交互或动画效果来增加模型的交互性。 最后,通过渲染器将场景渲染到屏幕上。这通常涉及设置渲染器的大小和位置,并在每一帧中将场景和相机渲染到屏幕上。 需要注意的是,具体的加载过程和代码细节会因所选择的引擎或库而有所不同,因此最好参考相关文档和示例,以确保正确加载和显示三维模型。同时,还可以根据需求自定义一些效果或交互逻辑,以满足具体的应用场景。 ### 回答2: 加载三维模型json可以通过以下步骤实现: 1.首先需要确保引入了相关的三维图形库,比如Three.js。在HTML文件中引入Three.js库,可以通过使用`<script>`标签将库文件链接到HTML文件中。 2.创建一个用于渲染三维场景的容器,比如一个`<div>`标签,可以给它一个唯一的`id`,例如`<div id="container"></div>`。 3.在JavaScript文件中,创建一个场景(scene)对象,并将其赋值给一个变量,比如`var scene = new THREE.Scene();`。 4.创建一个透视摄像机,并将其添加到场景中。透视摄像机的构建需要指定视野角度(FOV,field of view)、宽高比(aspect ratio)和近远裁剪面(near、far clipping planes)。例如:`var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);`。 5.创建一个渲染器,并将其添加到容器中。渲染器的构建需要指定渲染的宽度和高度。例如:`var renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.getElementById("container").appendChild(renderer.domElement);`。 6.使用加载器(比如`THREE.JSONLoader`)加载三维模型json文件。加载器的`load`方法可以接受要加载的模型文件路径,以及加载完成后的回调函数。例如: ``` var loader = new THREE.JSONLoader(); loader.load('model.json', function(geometry, materials) { var material = new THREE.MeshFaceMaterial(materials); var mesh = new THREE.Mesh(geometry, material); scene.add(mesh); }); ``` 7.在渲染函数中,将场景和摄像机作为参数传递给渲染器的`render`方法,并使用`requestAnimationFrame`方法持续渲染。例如: ``` function render() { requestAnimationFrame(render); renderer.render(scene, camera); } render(); ``` 加载完三维模型json后,它会被转化为Three.js中的几何体(geometry)和材质(material),然后将其添加到场景中。最后,通过持续调用渲染函数进行渲染,即可在浏览器中展示加载的三维模型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值