我正在尝试将我的 Google 表格文档中的数据导入 MongoDB Atlas。我已经在函数编辑器中编写了应用程序脚本和函数。当我在 MongoDB 的函数编辑器中运行我的代码时,我得到这个错误“mongodb insert:argument must be an object”。这是我到目前为止所拥有的:
谷歌表格APP脚本
function exportSheetsToMongo () {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName("US");
var headersRows = 1;
var range = sheet.getDataRange();
var numsRows = range.getNumRows;
var data = range.getValues();
for (var i = headersRows; i < numsRows; i++) {
var usZipIdCell = range.getCell( i +1, columns.zip+1) // Error possible here
// var description = data[i][columns.description];
var formData = {
// 'country': data[i][columns.description],
'zip': data[i][columns.zip],
'city': data[i][columns.city],
'state': data[i][columns.state],
'state_code': data[i][columns.state_code],
'county': data[i][columns.county],
'county_code': data[i][columns.county_code],
'lattitude': data[i][columns.lattitude],
'longitude': data[i][columns.longitude],
'accuracy': data[i][columns.accurcay]
};
var options = {
'method':'post',
'payload': formData
};
if(description) {
var insertID = UrlFetchApp.fetch("https://us-east-1.aws.data.mongodb-api.com/app/mmc-backend-mzbhi/endpoint", options);
usZipIdCell.setValue(insertID)
}
}
}
MongoDB领域函数编辑器
exports = async function(payload) {
const mongodb = context.services.get("mongodb-atlas");
const eventsdb = mongodb.db("us_zip");
const eventscoll = eventsdb.collection("zip");
const result = await eventscoll.insertOne(payload.query);
var id = result.insertedId.toString();
if(result) {
return JSON.stringify(id,false,false);
}
return {text: 'Error saving'}
};
部分 Google 表格数据
数据库