# MongoDBChatMessageHistory

> **Class** in `langchain_mongodb`

📖 [View in docs](https://reference.langchain.com/python/langchain-mongodb/chat_message_histories/MongoDBChatMessageHistory)

Chat message history that stores history in MongoDB.

## Signature

```python
MongoDBChatMessageHistory(
    self,
    connection_string: Optional[str],
    session_id: str,
    database_name: str = DEFAULT_DBNAME,
    collection_name: str = DEFAULT_COLLECTION_NAME,
    *,
    session_id_key: str = DEFAULT_SESSION_ID_KEY,
    history_key: str = DEFAULT_HISTORY_KEY,
    create_index: bool = True,
    history_size: Optional[int] = None,
    index_kwargs: Optional[Dict] = None,
    client: Optional[MongoClient] = None,
)
```

## Description

**Setup:**

Install ``langchain-mongodb`` python package.

.. code-block:: bash

    pip install langchain-mongodb

**Instantiate:**

.. code-block:: python

from langchain_mongodb import MongoDBChatMessageHistory

history = MongoDBChatMessageHistory(
    connection_string="mongodb://your-host:your-port/",  # mongodb://localhost:27017/
    session_id = "your-session-id",
)

**Add and retrieve messages:**

.. code-block:: python

# Add single message
history.add_message(message)

# Add batch messages
history.add_messages([message1, message2, message3, ...])

# Add human message
history.add_user_message(human_message)

# Add ai message
history.add_ai_message(ai_message)

# Retrieve messages
messages = history.messages

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `connection_string` | `Optional[str]` | Yes | Optional[str] connection string to connect to MongoDB. Can be None if mongo_client is provided. |
| `session_id` | `str` | Yes | str arbitrary key that is used to store the messages of a single chat session. |
| `database_name` | `str` | No | Optional[str] name of the database to use. (default: `DEFAULT_DBNAME`) |
| `collection_name` | `str` | No | Optional[str] name of the collection to use. (default: `DEFAULT_COLLECTION_NAME`) |
| `session_id_key` | `str` | No | Optional[str] name of the field that stores the session id. (default: `DEFAULT_SESSION_ID_KEY`) |
| `history_key` | `str` | No | Optional[str] name of the field that stores the chat history. (default: `DEFAULT_HISTORY_KEY`) |
| `create_index` | `bool` | No | Optional[bool] whether to create an index on the session id field. (default: `True`) |
| `history_size` | `Optional[int]` | No | Optional[int] count of (most recent) messages to fetch from MongoDB. (default: `None`) |
| `index_kwargs` | `Optional[Dict]` | No | Optional[Dict] additional keyword arguments to pass to the index creation. (default: `None`) |
| `client` | `Optional[MongoClient]` | No | Optional[MongoClient] an existing MongoClient instance. If provided, connection_string is ignored. (default: `None`) |

## Extends

- `BaseChatMessageHistory`

## Constructors

```python
__init__(
    self,
    connection_string: Optional[str],
    session_id: str,
    database_name: str = DEFAULT_DBNAME,
    collection_name: str = DEFAULT_COLLECTION_NAME,
    *,
    session_id_key: str = DEFAULT_SESSION_ID_KEY,
    history_key: str = DEFAULT_HISTORY_KEY,
    create_index: bool = True,
    history_size: Optional[int] = None,
    index_kwargs: Optional[Dict] = None,
    client: Optional[MongoClient] = None,
)
```

| Name | Type |
|------|------|
| `connection_string` | `Optional[str]` |
| `session_id` | `str` |
| `database_name` | `str` |
| `collection_name` | `str` |
| `session_id_key` | `str` |
| `history_key` | `str` |
| `create_index` | `bool` |
| `history_size` | `Optional[int]` |
| `index_kwargs` | `Optional[Dict]` |
| `client` | `Optional[MongoClient]` |


## Properties

- `session_id`
- `database_name`
- `collection_name`
- `session_id_key`
- `history_key`
- `history_size`
- `client`
- `db`
- `collection`
- `messages`

## Methods

- [`close()`](https://reference.langchain.com/python/langchain-mongodb/chat_message_histories/MongoDBChatMessageHistory/close)
- [`add_message()`](https://reference.langchain.com/python/langchain-mongodb/chat_message_histories/MongoDBChatMessageHistory/add_message)
- [`clear()`](https://reference.langchain.com/python/langchain-mongodb/chat_message_histories/MongoDBChatMessageHistory/clear)

---

[View source on GitHub](https://github.com/langchain-ai/langchain-mongodb/blob/edee54e78705190a78087e13013412a39d71a651/libs/langchain-mongodb/langchain_mongodb/chat_message_histories.py#L23)