ASTRO轻应用 ASTROZERO-标准页面中预置的API:对象操作

时间:2024-10-21 11:35:12

对象操作

  • 获取对象

    API:context.object(objectName)

    入参:objectName,对象名称。

    出参:对象。

    示例如下:

    let _object = context.object("objectName")
  • 查询对象所有数据

    API:

    _object.query().then(function (response) {
        // TODO: Your business logic
    })
  • 查询满足条件数据

    例如,查询满足name = 'test' 条件的对象数据,代码如下:

    let _condition = {conjunction: 'AND', conditions: [{ field: 'name', operator: 'eq', value: 'test' }] }
    _object.query({condition:_condition}).then(function (response) {
        // TODO: Your business logic
    })
  • 统计满足条件的对象数据数量

    API:_object.count(_condition)

    其中,“_object”为对象名称。

    入参:_condition,查询条件,可选。

    出参:Promise。

    示例:

    // 统计所有数据
    _object.count().then(function (response) {
        // TODO: Your business logic
    })
    
    // 统计满足条件数据
    _object.count(_condition).then(function (response) {
        // TODO: Your business logic
    })
  • 查询满足条件数据, 且只查询部分字段
    let _fields = 'id,name'
    _object.query({condition:_condition}, _fields).then(function (response) {
        // TODO: Your business logic
    })
  • 查询满足条件数据, 且只查询部分字段, 支持分页和排序
    例如,根据name字段降序排序,跳过前10条记录分页,每页最多显示10条数据。示例代码如下:
    let _fields = 'id,name'
    let _options= {'skip': 10,'limit': 10,'orderby': [{'field': 'name','order': 'desc'}]}
    _object.query({condition:_condition}, _fields, _options).then(function (response) {
        // TODO: Your business logic
    })
  • 通用对象数据查询

    API:_object.query({condition:_condition}, fields: string)

    入参:_condition,查询条件,可选,参考如下结构。

    { 
        conjunction: 'AND',    // 条件连接符,AND 或 OR
        conditions: [
            { 
                field: 'name', // 条件字段
                operator: 'eq',// 条件比较符
                value: 'test'  // 条件值
            },
            {
                condition: {   // 嵌入条件
                    conjunction: 'OR',
                    conditions: [
                        {
                            field: 'status',
                            operator: 'eq',
                            value: '1'
                        },
                        {
                            field: 'status',
                            operator: 'eq',
                            value: '2'
                        }                
                    ]
                }
            }
        ]
    }

    以上示例表达内容为:name = 'test' && ( status = '1' || status = '2')

    fields:查询字段(只返回指定的字段),多个字段以逗号分割,可选。

    出参:Promise。

  • 插入对象数据,支持批量操作

    API:_object.insert(data: Object[])

    入参:data,待插入数据,对象数组。

    出参:Promise,返回新插入数据的记录ID。

    示例:

    let data = [{ name: 'test', label: 'test' }]
    _object.insert(data).then(function (response){
        if (response && '0' === response.resCode) {
            let _id = response.result[0].id}})
  • 根据记录ID更新对象数据

    API:_object.updateByID(_id: string, data: Object)

    入参:id表示记录ID,data表示对象更新内容。

    出参:Promise。

    示例:

    let _id = '{{ id }}'
    // 根据记录ID更新数据
    _object.updateByID(_id, { label: 'test2' }).then(function (response) {
        // TODO: Your business logic
    })
  • 根据记录ID查询对象数据

    API:_object.queryByID(_id: string)

    入参:id表示记录ID。

    出参:Promise。

    示例:

    let _id = '{{ id }}'
    // 根据记录ID查询单条数据
    _object.queryByID(_id).then(function (response) {
        // TODO: Your business logic
    })
  • 根据记录ID删除对象数据

    API:_object.deleteByID(_id: string)

    入参:id表示对象记录ID。

    出参:Promise。

    示例:

    let _id = '{{ id }}'
    // 根据记录ID删除数据
    _object.deleteByID(_id).then(function (response) {
        // TODO: Your business logic
    })
  • 根据记录ID批量查询对象数据

    API:_object.batchQueryByIDs(_ids: string, fields: string)

    入参:ids表示记录ID,多个ID以逗号分割。fields表示查询字段,多个字段以逗号分割,可选。

    出参:Promise。

    示例:

    _object.batchQueryByIDs('id1,id2,id3').then(function (response) {
        // TODO: Your business logic
    })
  • 根据记录ID批量删除对象数据

    API:_object.batchDeleteByIDs(_ids: string)

    入参:ids表示记录ID,多个ID以逗号分割。

    出参:Promise。

    示例:

    _object.batchDeleteByIDs('id1,id2,id3').then(function (response) {
        // TODO: Your business logic
    })
  • 批量插入或更新对象数据

    API:_object.batchUpsert(data: Object[])

    入参:data,待插入或更新的数据对象,包含id时表示进行更新。

    出参:Promise。

    示例:

    let data = [{id: '1538033158273005', label: 'test'}, {name: 'test', label: 'test'}]
    
    _object.batchUpsert(data).then(function (response) {
        // TODO: Your business logic
    })
support.huaweicloud.com/api-astrozero/astrozero_api_00101.html