Py学习  »  MongoDB

mongodb:无法使用google云函数向mongodb atlas服务器插入多个

Mike • 4 年前 • 765 次点击  

我希望通过移动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;
    })

编辑:函数可以连接到数据库。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47108
 
765 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Jack Bashford
Reply   •   1 楼
Jack Bashford    4 年前

docs 以下内容:

document 要插入到集合中的文档数组。

只需在对象周围添加一对方括号:

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'] : ''
}];