- 此包是系统设置中的数据导入功能,可通过excel导入对象数据
- 比如在自定义的软件包package.service.js中监听系统初始化事件调用importData导入软件包中的数据:
module.exports = {
/**
* Events
*/
events: {
// 系统初始化成功
'service-cloud-init.succeeded': async function (ctx) {
await this.broker.call("@steedos/data-import.importData", {
data: {
"csv": csvData,
"json": jsonData,
},
spaceId,
onlyInsert: true,
})
}
},
};
- importData action 参数说明
/**
* 参数示例:
{
data: {
"csv": [{ objectName: 'warehouse', records: [ [Object] ]],
"json": [{ objectName: 'house', records: [ [Object] ]],
},
spaceId,
onlyInsert: true,
}
*/
"importData": {
params: {
data: {
type: "object",
props: {
csv: {
type: "array",
items: {
type: "object",
props: {
objectName: { type: "string" },
records: { type: "array", items: "object" },
}
},
optional: true,
},
json: {
type: "array",
items: {
type: "object",
props: {
objectName: { type: "string" },
records: { type: "array", items: "object" },
}
},
optional: true,
},
}
},
spaceId: { type: "string" },
onlyInsert: { type: "boolean", optional: true, default: true }, // 仅新增,在导入数据之前先检查,如果存在任意一条记录,则不执行导入,默认true,如果是false, 则如果存在则执行更新操作。
},
async handler(ctx) {
}
}
- json: 使用命令导出。例如:
mongoexport --uri="mongodb://192.168.3.31:27017/steedos-apps" --jsonArray --collection=contract_types --out=contract_types.data.json
- csv: 使用命令导出。例如:
mongoexport --uri="mongodb://192.168.3.31:27017/steedos-apps" --collection=contract_types --type=csv --fields=name,code --out=contract_types.data.csv
json、csv中文件请使用utf-8
编码
mongoexport --uri="mongodb://192.168.3.31:27017/steedos-apps" --collection=contract_types --type=csv --fields=name,code --out=contract_types.data.csv
mongoexport --uri="mongodb://192.168.3.31:27017/steedos-apps" --jsonArray --collection=contracts --out=contracts.data.json