我希望通过移动api调用将数据存储到mongodb中。我正在使用google云功能将数据从移动客户端发送到mongodb atlas。我试过使用下面的代码,但是它似乎忽略了
newData
数组,未发送任何内容,MongoDB仍为空。
以下是当前的解决方案:
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;
})
编辑:函数可以连接到数据库。