Skip to content

Commit ef954d7

Browse files
authored
INTPYTHON-604 Add sharding example for MongoDBSaver (#155)
1 parent b82e050 commit ef954d7

File tree

1 file changed

+11
-0
lines changed
  • libs/langgraph-checkpoint-mongodb/langgraph/checkpoint/mongodb

1 file changed

+11
-0
lines changed

libs/langgraph-checkpoint-mongodb/langgraph/checkpoint/mongodb/saver.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,17 @@ class MongoDBSaver(BaseCheckpointSaver):
6060
>>> result = graph.invoke(3, config)
6161
>>> graph.get_state(config)
6262
StateSnapshot(values=4, next=(), config={'configurable': {'thread_id': '1', 'checkpoint_ns': '', 'checkpoint_id': '1ef8b22d-df71-6ddc-8001-7c821b5c45fd'}}, metadata={'source': 'loop', 'writes': {'add_one': 4}, 'step': 1, 'parents': {}}, created_at='2024-10-15T18:25:34.088329+00:00', parent_config={'configurable': {'thread_id': '1', 'checkpoint_ns': '', 'checkpoint_id': '1ef8b22d-df6f-6eec-8000-20f621dcf3b7'}}, tasks=())
63+
64+
Adding sharding support:
65+
66+
>>> from langgraph.checkpoint.mongodb import MongoDBSaver
67+
>>> from pymongo import MongoClient
68+
>>> memory = MongoDBSaver(client)
69+
>>> client = MongoClient("mongodb://localhost:27017")
70+
>>> client.admin.command('enableSharding', memory.db_name)
71+
>>> shard_key = {'your_shard_key': 1} # Specify your shard key
72+
>>> client.admin.command('shardCollection', f'{memory.db_name}.{memory.checkpoint_collection_name}', key=shard_key)
73+
>>> client.admin.command('shardCollection', f'{memory.db_name}.{memory.writes_collection_name}', key=shard_key)
6374
"""
6475

6576
client: MongoClient

0 commit comments

Comments
 (0)