Новичок в Node-Red и просто пытается понять концепцию асинхронной отправки сообщений, используя node.send({payload:result})
Я пытаюсь выполнить обновление MongoDB с помощью upsert на основе результатов, возвращаемых узлом.Функция send (), но, к сожалению, вместо 20 документов я вижу только одну вставку документа.
Моя асинхронная функция A1 выглядит следующим образом:
msg.payload.forEach(function(myRec) {
node.send({payload:myRec});
});
return null;
Используя узел отладки, это возвращает все 20 документов.
Моя другая функция, связанная с этой асинхронной функцией A1, используется для выполнения upsert, т.е.
Функция A2:
msg1 = {};
msg1.operation="updateOne";
msg1.collection="myCollection";
msg.myrec = msg.payload; // assuming from A1 node.send payload
msg1.payload= [
{ "myNm": "aaa"},
{
$set: {
"nm": msg.myrec.nm,
"addressdets": msg.myrec.addressdets
}
},
{upsert: true}
];
node.send({payload:msg1});
return null;
Функция A2 затем передается/ подключен к моему узлу MongoDB в моем потоке.
Исходя из вышеизложенного, процесс вставляет только один документ, а не весь 20.
Любые идеи относительно того, что мне не хватает.