mongodb: невозможно вставить Many на сервер MongoDB Atlas с помощью облачных функций Google - PullRequest
1 голос
/ 30 июня 2019

Я хочу сохранить данные в 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;
    })

Редактировать: функция может подключаться к БД.

1 Ответ

0 голосов
/ 30 июня 2019

См. документы :

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'] : ''
}];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...