我希望通过移动 API 调用将数据存储到 Mongodb 中。我正在使用谷歌云功能将数据从移动客户端发送到 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;
})
编辑:函数能够连接到数据库。
最佳答案
请参阅docs :
document
An array of documents to insert into the collection.
只需在对象周围添加一对方括号即可:
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'] : ''
}];
关于javascript - mongodb:无法使用谷歌云功能将Many插入到MongoDB Atlas服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56821436/