Add credentials
- Create a new pipeline or open an existing pipeline.
- Expand the left side of your screen to view the file browser.
- Scroll down and click on a file named
io_config.yaml
.
- Enter the following keys and values under the key named
default
(you can
have multiple profiles, add it under whichever is relevant to you)
version: 0.1.1
default:
MONGODB_CONNECTION_STRING: "mongodb://{username}:{password}@{host}:{port}/"
MONGODB_HOST: host
MONGODB_PORT: 27017
MONGODB_USER: user
MONGODB_PASSWORD: password
MONGODB_DATABASE: database
MONGODB_COLLECTION: collection
Using Python block
- Create a new pipeline or open an existing pipeline.
- Add a data loader, transformer, or data exporter block (the code snippet
below is for a data loader).
- Select
Generic (no template)
.
- Enter this code snippet (note: change the
config_profile
from default
if
you have a different profile):
from mage_ai.settings.repo import get_repo_path
from mage_ai.io.config import ConfigFileLoader
from mage_ai.io.mongodb import MongoDB
from os import path
if 'data_loader' not in globals():
from mage_ai.data_preparation.decorators import data_loader
if 'test' not in globals():
from mage_ai.data_preparation.decorators import test
@data_loader
def load_from_mongodb(*args, **kwargs):
config_path = path.join(get_repo_path(), 'io_config.yaml')
config_profile = 'default'
query = {}
return MongoDB.with_config(ConfigFileLoader(config_path, config_profile)).load(
query=query,
collection='collection_name',
)
- Run the block.
Export a dataframe
Here is an example code snippet to export a dataframe to MongoDB:
from os import path
from pandas import DataFrame
from mage_ai.settings.repo import get_repo_path
from mage_ai.io.config import ConfigFileLoader
from mage_ai.io.mongodb import MongoDB
if 'data_exporter' not in globals():
from mage_ai.data_preparation.decorators import data_exporter
@data_exporter
def export_data_to_mongodb(df: DataFrame, **kwargs) -> None:
config_path = path.join(get_repo_path(), 'io_config.yaml')
config_profile = 'default'
MongoDB.with_config(ConfigFileLoader(config_path, config_profile)).export(
df,
collection='collection_name',
)