首页 > 解决方案 > 如何使用javascript es6将数组插入spanner数据库中的列

问题描述

我有以下数据:

data = {
    id: 10012,
    name: "abc",
    hobby: ["cricket", "football"]
}

我的表结构是: id int64, name string(25), petName string(20), hobby string(25)

如何将数据数组插入到 spanner 表中?

async insert(data) {
    const result;
    const params = {
        id: data.id,
        name: data.name,
        petName: null
    }
    await data.hobby.map(async h => {
        params.hobby = h;
        const query = 'INSERT INTO my_table (id, name, petName, hobby) VALUES (@id, @name, @petName, @hobby)';
        result = await db.RunTrans(query, params);
    });
    return result;
}

上面的代码不会将值插入到表中。请帮我解决这个问题..

标签: javascriptnode.jsobjectecmascript-6google-cloud-spanner

解决方案


解构想要的值(以避免不必要的重复点符号),然后使用模板文字:

async insert(data) {
    const result;
    const params = {
        id: data.id,
        name: data.name,
        petName: null
    }
    await data.hobby.map(async h => {
        params.hobby = h;
        const { id, name, petName, hobby } = params;
        const query = `INSERT INTO my_table (id, name, petName, hobby) VALUES (${id}, ${name}, ${petName}, ${hobby})`;
        result = await db.RunTrans(query, params);
    });
    return result;
}

推荐阅读