当前位置: 首页 > 知识库问答 >
问题:

使用Cosmos DB CoreSQLAPI使用嵌套JSON嵌套JS

钱青青
2023-03-14

我被困在将嵌套JS与宇宙数据库核心SQL API集成上。我知道有一个用于 Cosmos DB 的模块(https://github.com/nestjs/azure-database),但我需要数据架构来支持嵌套的 json,如下所示:

{
    "id":"string",
    "name":"string",
    "start_date":2016-06-01T00:00:00.000Z,
    "end_date":2016-06-01T00:00:00.000Z,
    "current_status":{
        "event_part_id":"string",
        "media_type":"string",
        "media_id":"string",
        "media_time":int
    },
    "event_parts":[{
        "id":"string",
        "name":"string",
        "timeline_id":"string",
        "user_voice_chat":boolean,
    "surveys":[{
        "id":"string",
        "name":"string",
        "question":"string",
        "answers":[{
            "id":"string",
            "name":"string"
        }],
    }],
    "images":[{
        "id":"string",
        "name":"string",
        "url":"string"
        }],
    "videos":[{
        "id":"string",
        "name":"string",
            "url":"string"
        }],
        "live_streaming":{            
            "id":"string",
            "name":"string",
            "url":"string"
        }
    }],
    "asset_id":"string",
    "twitter_text":"string",
    "rtc_network_room_id":"string",
    "is_active":boolean
}

我认为@nestjs/azure-database不支持这一点(或者我可能错了),因为当我检查他们的示例和quickstart时,没有这样的json模式的示例。

是否可以使用@nestjs/azure数据库,或者我是否需要为此创建自定义数据库模块?

我也知道可以选择使用Cosmos DB MongoDB API并为此使用TypoORM或Sequelize,但内部我们希望继续使用Cosmos DBSQLAPI,因为我们已经将其用于多个服务。

谢谢!

共有1个答案

闻慎之
2023-03-14

Github页面上的文档显示,当目标是CosmosDB时,您可以使用复杂的对象类型。

import { CosmosPartitionKey, CosmosDateTime, Point } from '@nestjs/azure-database';

@CosmosPartitionKey('type')
export class Event {
  id?: string;
  type: string;
  @CosmosDateTime() createdAt: Date;
  location: Point;
}

将自动转换为:

{
  "type": "Meetup",
  "createdAt": "2019-11-15T17:05:25.427Z",
  "position": {
    "type": "Point",
    "coordinates": [2.3522, 48.8566]
  }
}

注意postition嵌套对象和Point类型的转换。

 类似资料:
  • 如何使用jolt转换将平面JSON转换为嵌套JSON?我对JSON和jolt是新手。 输入: 预期输出: 编辑:我想在< code>SubFunds中添加一个新字段,但是新字段不在JSON文件中,它是计算字段,我可以按原样添加示例吗 并重命名字段:

  • 我正在尝试使用Cassandra中的复合表和nodejs绑定来存储嵌套的JSON对象。 假设我的数据看起来像这样(朋友和敌人实际上拥有比简单地图更复杂的数据结构): 根据我对复合键的理解(这里:https://pkghosh.wordpress.com/2013/07/14/storing-nested-objects-in-cassandra-composite_columns/),我希望像这样

  • 问题内容: 要将注册数据发送到服务器,我使用的JSON格式如下: 这是发送方式。 但不幸的是,我收到此错误: 问题答案: 您的要求很好。由于服务器使用无效的JSON对象进行响应,因此将返回错误。 看看发回了什么。

  • 问题内容: 我正在尝试从上述JSON检索邮政编码。我正在用gson解析它。我是JSON的新手,从我在这里的所有文章中读到的内容(有些与此类似),我都知道字段名称应保持原样。所以我知道我必须做出4类,即响应,视图,结果和地址。我使它们成为静态嵌套类,但是我只得到空值作为输出。在下一个JSON中,我有多个地址。但是我只停留在这个单一的回应上。 举一个简短的例子,我尝试使用此代码检索Timestamp,

  • 问题内容: 我想拉平一个嵌套的JSON对象,如以为了消化它Solr中。 我有11 TB的json文件,这些文件既嵌套又包含字段名称中的点,这意味着elasticsearch(点)或solr(嵌套时不带符号)都不能按原样消化它。 其他解决方案是用下划线替换字段名称中的点并将其推送到elasticsearch,但是我对solr有更好的经验,因此我更喜欢扁平化解决方案(除非solr可以按原样消化那些嵌套

  • 问题内容: 我正在尝试使用angular.js,hammer.js和topcoat制作和移动webapp。 我在显示像这样的Json文件中的数据时遇到了一些麻烦: 我的js文件是这样的: 我的HTML文件是这样的: 我想显示所有专辑,并且如果我的用户选择特定的艺术家,我想过滤那些专辑。 这里的问题是如何在此嵌套json上进行选择。顺便说一句,artist.name显示正确。 第二个问题是,如何过滤