# Bot reading Data from Mongo DB

**URL:** <https://forum.rasa.com/t/bot-reading-data-from-mongo-db/13518>\
**Category:** Rasa Open Source\
**Created:** [July 25, 2019, 7:55am UTC](https://forum.rasa.com/t/bot-reading-data-from-mongo-db/13518 "2019-07-25T07:55:51Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![pausali.biswas](https://avatars.discourse-cdn.com/v4/letter/p/41988e/32.png) [@pausali.biswas](https://forum.rasa.com/u/pausali.biswas)\
**Post date:** [July 25, 2019, 7:55am UTC](https://forum.rasa.com/t/bot-reading-data-from-mongo-db/13518/1 "2019-07-25T07:55:51Z")

</div>

Hi ,

Can anyone help me with an example where Rasa is connected to Mongo Db for reading Data . Suppose we have an employee table with all the details, we need the Bot to read the data from there and utter to the user

Thanks in advance. 🙂

---

<div class="post-metadata">

**Author:** ![tyd](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tyd/32/3030_2.png) [@tyd](https://forum.rasa.com/u/tyd)\
**Post date:** [July 26, 2019, 10:31am UTC](https://forum.rasa.com/t/bot-reading-data-from-mongo-db/13518/2 "2019-07-26T10:31:21Z")

</div>

Hi @pausali.biswas! Are you talking about [saving conversations to MongoDB](http://forum.rasa.com/t/establish-connection-between-rasa-and-mongodb/12955)?

---

<div class="post-metadata">

**Author:** ![pausali.biswas](https://avatars.discourse-cdn.com/v4/letter/p/41988e/32.png) [@pausali.biswas](https://forum.rasa.com/u/pausali.biswas)\
**Post date:** [July 26, 2019, 11:14am UTC](https://forum.rasa.com/t/bot-reading-data-from-mongo-db/13518/3 "2019-07-26T11:14:37Z")

</div>

No, I am talking about reading data from Mongo DB for utter to the user

---

<div class="post-metadata">

**Author:** ![tyd](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tyd/32/3030_2.png) [@tyd](https://forum.rasa.com/u/tyd)\
**Post date:** [July 28, 2019, 1:47pm UTC](https://forum.rasa.com/t/bot-reading-data-from-mongo-db/13518/4 "2019-07-28T13:47:40Z")

</div>

@pausali.biswas

You could [manage assistant utterances using an external content message system](https://rasa.com/docs/rasa/core/responses/#managing-assistant-utterances-using-an-external-cms), setting up an external HTTP server that uses MongoDB for storage. It looks like MongoDB recommends using [Sleepy Mongoose (Python)](https://docs.mongodb.com/ecosystem/tools/http-interfaces/#sleepy-mongoose-python).

You could also write [custom actions](https://rasa.com/docs/rasa/core/actions/#custom-actions-written-in-python) that call a REST API using the `requests` library to retrieve and set the response text from your MongoDB database. It looks like MongoDB recommends using [Eve (Python)](https://docs.mongodb.com/ecosystem/tools/http-interfaces/#eve-python).

---

<div class="post-metadata">

**Author:** ![pausali.biswas](https://avatars.discourse-cdn.com/v4/letter/p/41988e/32.png) [@pausali.biswas](https://forum.rasa.com/u/pausali.biswas)\
**Post date:** [August 7, 2019, 11:13am UTC](https://forum.rasa.com/t/bot-reading-data-from-mongo-db/13518/5 "2019-08-07T11:13:47Z")

</div>

Yes i understand, do you have any sample projects or code for this, that will be of great help as i am a newbie in this. 🙂

---

<div class="post-metadata">

**Author:** ![tyd](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/tyd/32/3030_2.png) [@tyd](https://forum.rasa.com/u/tyd)\
**Post date:** [August 7, 2019, 1:43pm UTC](https://forum.rasa.com/t/bot-reading-data-from-mongo-db/13518/6 "2019-08-07T13:43:51Z")

</div>

@pausali.biswas It looks like [Eve](https://github.com/pyeve/eve-demo#readme) has a demo that will help you understand how to set up a REST API for your MongoDB instance.

Then you should be able to use the [requests](https://realpython.com/python-requests/) library to call this API from a custom action in order to retrieve data from your database ([docs](https://rasa.com/docs/rasa/core/actions/#custom-actions-written-in-python) and [example](https://github.com/RasaHQ/rasa_core/blob/master/examples/concertbot/actions.py)).

---

<div class="post-metadata">

**Author:** ![pkchoudhary1211](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/pkchoudhary1211/32/5790_2.png) [@pkchoudhary1211](https://forum.rasa.com/u/pkchoudhary1211)\
**Post date:** [November 18, 2019, 11:36am UTC](https://forum.rasa.com/t/bot-reading-data-from-mongo-db/13518/7 "2019-11-18T11:36:21Z")

</div>

look at My code I am loading data from mongoDB

```
from typing import Any, Text, Dict, List
from pymongo.database import Database
from pymongo import MongoClient
from rasa_sdk import Action, Tracker 
from rasa_sdk.executor import CollectingDispatcher
import pymongo
# url="http://localhost:3000/api"
class CarAction(Action):
    def name(self):
        return "carAction"
    def run(self, dispatcher, tracker, domain):
        client = pymongo.MongoClient("localhost", 27017)
        db=client.sample
        res = db.datas.find({'action':'CarAction'})
        print(type(res))
        for i in res:
            dispatcher.utter_button_message(i['text'],i['buttons'])
        return []

```

I am using pymongo

this is for load data from API

```
import requests

import json

from typing import Any, Text, Dict, List

from pymongo.database import Database

from pymongo import MongoClient
from rasa_sdk import Action, Tracker
class NormalCarAction(Action):
    def name(self):
        return "normalCarAction"
    def run(self, dispatcher, tracker, domain):
        intent = tracker.latest_message['intent'].get('name')
        request = requests.get(url+"?action=normalCarAction").json()  
        if(len(request)>0):
            dispatcher.utter_button_message(request[0]['text'],request[0]['buttons'])
        else:
            dispatcher.utter_message("Try Again");
        return []
```

---

<div class="post-metadata">

**Author:** ![faiza\_conte](https://avatars.discourse-cdn.com/v4/letter/f/74df32/32.png) [@faiza\_conte](https://forum.rasa.com/u/faiza_conte)\
**Post date:** [September 27, 2020, 9:24pm UTC](https://forum.rasa.com/t/bot-reading-data-from-mongo-db/13518/8 "2020-09-27T21:24:24Z")

</div>

i want to fetch data from mysql database and display to user,but when i do that it diplays as json format but i want it in a list how can i do that
