Я хочу сохранить данные в Mongodb с помощью мобильного API-вызова.Я использую облачную функцию Google для отправки данных с мобильного клиента в MongoDB Atlas.Я попытался использовать следующий код, однако он, похоже, игнорирует массив newData
, ничего не отправляется и MongoDB Db остается пустым.
ниже - текущее решение:
let newData = {
transId: trans['trans_id'] ? trans['trans_id'] : '',
sender: trans['ledger_to_id'] ? trans['ledger_to_id'] : '',
receiver: trans['ledger_from_id'] ? trans['ledger_from_id'] : '',
createdAt: trans['created_at'] ? trans['created_at'] : '',
amount: trans['cost'] ? trans['cost'] : ''
};
db.collection('test').insertMany(newData)
db.close();
Я пробовал db.collection('test').bulkWrite(newData)
Полная функция:
index.js
exports.costLedger = functions.https.onCall(async(data, context) => {
var allTrans = await get(`v1/customer/orders`);
MongoClient.connect(CONNECTION_URL, function(err, client) {
assert.equal(null, err);
console.log("Connected successfully to server");
const db = client.db(DATABASE_NAME);
for (var transIndex in allTrans) {
var trans = allTrans[transIndex];
console.log(trans['trans_id']);
let newData = {
transId: trans['trans_id'] ? trans['trans_id'] : '',
sender: trans['ledger_to_id'] ? trans['ledger_to_id'] : '',
receiver: trans['ledger_from_id'] ? trans['ledger_from_id'] : '',
createdAt: trans['created_at'] ? trans['created_at'] : '',
amount: trans['cost'] ? trans['cost'] : ''
};
db.collection('test').insertMany(newData)
db.close();
}
});
return allTrans;
})
Редактировать: функция может подключаться к БД.