# Help with msg.payload from object from db

**URL:** <https://discourse.nodered.org/t/help-with-msg-payload-from-object-from-db/43580>\
**Category:** General\
**Created:** [2 April 2021 23:39 UTC](https://discourse.nodered.org/t/help-with-msg-payload-from-object-from-db/43580 "2021-04-02T23:39:32Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Broutech](https://avatars.discourse-cdn.com/v4/letter/b/e0b2c6/32.png) [@Broutech](https://discourse.nodered.org/u/Broutech)\
**Post date:** [2 April 2021 23:39 UTC](https://discourse.nodered.org/t/help-with-msg-payload-from-object-from-db/43580/1 "2021-04-02T23:39:32Z")

</div>

Hi All,

Looking for some assistance on how to formulate or prep an object that i retrieved from a db query and post to Telegram

 ![Object](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/0/c0653e8b59522cf5f74f8b8d23eb0cdd33f4cf7a.jpeg)

---

<div class="post-metadata">

**Author:** ![Andrei](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/andrei/32/10446_2.png) [@Andrei](https://discourse.nodered.org/u/Andrei)\
**Post date:** [3 April 2021 01:51 UTC](https://discourse.nodered.org/t/help-with-msg-payload-from-object-from-db/43580/2 "2021-04-03T01:51:52Z")

</div>

So, basically you want to extract a string from inside an object and this object is itself an element of an array. Seems dauting to find the path to recover this string but you can use a resource in the debug node to make it easier. Here an example to illustrate.

![r-01](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/d/ad32ba5741cccd0eeae71b8c34f9b9a376932449.jpeg) .

If you click on the path icon you will get the location of the property in the object. In my example I got `payload[0].sla_detail`.

---

<div class="post-metadata">

**Author:** ![Broutech](https://avatars.discourse-cdn.com/v4/letter/b/e0b2c6/32.png) [@Broutech](https://discourse.nodered.org/u/Broutech)\
**Post date:** [3 April 2021 06:12 UTC](https://discourse.nodered.org/t/help-with-msg-payload-from-object-from-db/43580/3 "2021-04-03T06:12:24Z")

</div>

Hi Andrei, thank you for your reply.

I got the same path.

```auto
payload[0].sla_detail

```

unsure of how to format it

```auto
{
    msg.payload = {};
    msg.payload.type = 'message';
    msg.payload.content = + msg.payload[0];
    msg.payload.chatId = -xxxxxxxx
    return msg;
}

```

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [3 April 2021 07:44 UTC](https://discourse.nodered.org/t/help-with-msg-payload-from-object-from-db/43580/4 "2021-04-03T07:44:03Z")

</div>

> [@Broutech](#):
>
> ```auto
> payload[0].sla_detail
> 
> ```
> 
> unsure of how to format it

Put that in the payload.content

```auto
    var text = msg.payload[0].sla_detail;
    msg.payload = {};
    msg.payload.type = 'message';
    msg.payload.content = text;
    msg.payload.chatId = -xxxxxxxx
    return msg;

```

---

<div class="post-metadata">

**Author:** ![Broutech](https://avatars.discourse-cdn.com/v4/letter/b/e0b2c6/32.png) [@Broutech](https://discourse.nodered.org/u/Broutech)\
**Post date:** [3 April 2021 08:03 UTC](https://discourse.nodered.org/t/help-with-msg-payload-from-object-from-db/43580/5 "2021-04-03T08:03:25Z")

</div>

> [@Steve-Mcl](#):
>
> ```auto
> var text = msg.payload[0].sla_detail;
> msg.payload = {};
> msg.payload.type = 'message';
> msg.payload.content = text;
> msg.payload.chatId = -xxxxxxxx
> return msg;
> 
> ```

Thank you again Steve, thank you for educating me. forever grateful

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [3 April 2021 08:05 UTC](https://discourse.nodered.org/t/help-with-msg-payload-from-object-from-db/43580/6 "2021-04-03T08:05:56Z")

</div>

The reason it works is, we store the value from the database in a temporary `var`iable (text) before we overwrite the msg.payload with a new empty object `{}` - at which point we destroy the databases payload

---

<div class="post-metadata">

**Author:** ![Broutech](https://avatars.discourse-cdn.com/v4/letter/b/e0b2c6/32.png) [@Broutech](https://discourse.nodered.org/u/Broutech)\
**Post date:** [5 April 2021 14:33 UTC](https://discourse.nodered.org/t/help-with-msg-payload-from-object-from-db/43580/7 "2021-04-05T14:33:56Z")

</div>

Afternoon Steve, I trust that you are doing well.

Thank you for all your assistance and your great code.

With your assistance I am now able to to read from a database all the IP addresses that will be ping at a time interval. The idea was to get a Telegram notification when a device goes offline via ping. That all is working great.

The problem or challenge now comes in when a lot goes down at the same time Telegram is overwhelmed by all the messages, can you assist with maybe a delay between lets say after pinging every 5 addresses rest for 5 seconds and continue where it left off?

```auto
const chatId = -437570160; // << update this

if (!msg.ping.host) return null; //ensure host has a value

var pingMonitor = flow.get("pingMonitor") || {};//get lookup object ||or|| a new empty object
var pingPrev = pingMonitor[msg.ping.host] || {};//this ping monitor object ||or|| a new empty object
var sendTelegram = false;

//if ping is good, you get a number in payload...
if (typeof msg.payload == "number" && pingPrev.status === "bad" ) {
    pingPrev.status = "good";
    msg.payload = {};
    msg.payload.type = 'message';
    msg.payload.content = `${msg.ping.name} (${msg.ping.host}) is now back online & operational!`;
    msg.payload.chatId = chatId;
    sendTelegram = true;
} else if (msg.payload === false && (pingPrev.status === "good" || !pingPrev.status)) {
    pingPrev.status = "bad";
    msg.payload = {};
    msg.payload.type = 'message';
    msg.payload.content = `${msg.ping.name} (${msg.ping.host}) seems to be OFFLINE`;
    msg.payload.chatId = chatId;
    sendTelegram = true;
}

//update context
pingPrev.datetime = new Date();
pingPrev.host = msg.ping.host;
pingPrev.name = msg.ping.name;
pingMonitor[msg.ping.host] = pingPrev;
flow.set("pingMonitor", pingMonitor);

if (sendTelegram) return msg;

return null;

```

I have also uploaded the flow for you. Thank you for looking.  
Anton

 ![2codeping](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/e/0e75df047f339ca2b85bcd2d32d44938d0b0be4c.jpeg) ![codeping](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/9/b9aebfdb25239823fb8e193e84b51d91f0815274.jpeg)

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [19 April 2021 14:34 UTC](https://discourse.nodered.org/t/help-with-msg-payload-from-object-from-db/43580/8 "2021-04-19T14:34:22Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
