FlowX Database (FlowX DB) is a persistence layer that allows you to store structured data independently of process instances. This enables you to:
Share data between different process instances
Store and retrieve data across multiple processes
Create a persistent data store within the FlowX ecosystem
Access structured data without directly interacting with external systems
FlowX Database is powered by the nosql-db-runner microservice, which provides MongoDB functionality within the FlowX ecosystem. This service supports both native MongoDB and Azure Cosmos DB (MongoDB API), enabling you to choose the database backend that best fits your infrastructure needs while maintaining FlowX’s workflow integration capabilities.For more information about the nosql-db-runner service and CosmosDB considerations, see the NoSQL DB Runner documentation.
Navigate to the ‘Integrations’ section in the left sidebar of FlowX Designer, then click on ‘Data Sources’.
Accessing Data Sources in the navigation menu
2
Add a new Data Source
Click the ”+” button to add a new Data Source. In the “Add Data Source” dialog, select “FlowX Database” from the dropdown list.
Adding a new FlowX Database data source
3
Configure the collection
Provide a name and description for your collection. The name will be used to identify this database collection in your workflows.
Data Model Required: You must have a data model defined before creating a FlowX Database collection. The data model becomes the schema for your database collection and defines the structure of documents that will be stored.
Configuring the collection
Schema Definition: Define the schema for your collection (the selected schema enhances auto-completion but does not enforce validation during insert or update)
Partitioning Key: The attribute used to partition data in your collection. By default, this is set to the id attribute, but you can specify a different field based on your data model.
4
Create the collection
Click “Create” to save the collection in FlowX Database. Your new collection will appear in the Data Sources list with the type “FlowX Database”.
Each FlowX Database data source represents a collection in the underlying MongoDB database. When you create a new data source with the FlowX Database type, you’re essentially creating a new collection where your documents will be stored.
Go to the collection you want to view in the ‘Data Sources’ section.
2
Access Documents tab
Click the ‘Documents’ section within the collection.
3
Browse documents
You’ll see a listing of currently saved documents in the collection.
Viewing documents in a FlowX Database collection
4
Search and filter
Use the search functionality to find specific documents in the collection. You can add queries to filter documents, sort them, and use projections to choose what content from each entry you want to see.
Searching and filtering documents in a FlowX Database collection
FlowX Database currently relies on MongoDB’s native sorting behavior for query results.
All sorting is performed using MongoDB’s default binary comparison rules.
5
Delete a document
Hover over a document row and click the trash icon, then confirm with Delete. The document is permanently removed from the collection and can’t be restored. You delete one document at a time, and you need edit rights on the data source.
Each FlowX Database collection has a Settings tab where you can configure performance optimizations:
1
Access Settings tab
Navigate to your collection and click on the ‘Settings’ tab.
2
Define indexes
Create indexes for your collection to improve query performance. Indexes are particularly important for large collections as they significantly reduce query execution time.
Create indexes on fields that you frequently use in filter conditions, sort operations, or queries to optimize performance.
Defining indexes for a FlowX Database collection
Defining indexes in the Settings tab saves them as configuration only — they are not applied to the actual MongoDB collection immediately. To apply indexes, you must go to the Runtime view of your project or library, open the Builds section, and select Apply Indexes from the build’s context menu. Only one build per project or library can have indexes applied at a time. Applying indexes on a new build will automatically replace any previously applied indexes that differ.For more details, see Builds.
For large collections with thousands of documents, proper indexing is crucial for maintaining good query performance. Consider indexing frequently queried fields before your collection grows large.
Toggle Enforce unique values when you add an index to reject any document that repeats a value already stored on the indexed attributes. On a single attribute, no two documents can hold the same value. On a compound index, the combination of attributes must be unique, not each attribute on its own.When Enforce unique values is on, a second toggle controls empty values:
Enforce only when the value is filled in (single attribute) or Enforce only when the whole key is filled in (compound index) ON: documents that leave the attribute, or any attribute of the key, empty are exempt. Duplicates among documents that do have values are still rejected.
The same toggle OFF: empty attributes count as values. Only one document in the collection can leave a single indexed attribute empty, and on a compound index two documents conflict when their keys match, blanks included.
Keep these rules in mind:
Values are matched exactly, so Ana@x.com and ana@x.com are two different values. Changing this later means dropping and recreating the index.
_id is always unique, so it can’t be the only attribute of a unique index, and a single index can’t cover two array attributes.
If a new unique index adds nothing to an existing one, FlowX Designer asks you to confirm with Create anyway.
If the collection sets a partitioning key and is sharded, the unique index must start with that key.
Like any index, a unique index is only created in the database when you run Apply Indexes on a build. That is when FlowX.AI checks for existing duplicates: if the environment’s collection already holds duplicate values, the Apply Indexes window lists sample values and keeps Apply unavailable. Remove the duplicates from that environment’s collection (for example from the Documents tab), then click Re-check. See Apply indexes.After the index is applied, an insert or update that would create a duplicate fails.
Navigate to your FlowX Database collection in the Data Sources section.
2
Create new operation
Click the ”+” button to create a new operation.
Creating a new operation for a FlowX Database collection
3
Select operation type
Choose the operation type from the dropdown (find, findOne, insertOne, insertMany, etc.).
Selecting the operation type
4
Name the operation
Give your operation a meaningful name and description that indicates its purpose.
5
Define the operation parameters
Configure the parameters for your operation based on its type. For example, for a find operation:
Configuring operation parameters
Filter: Define the criteria to match documents
Projection: Select which fields to include in the results
Sort: Specify the sorting order
Skip: For find operations, specify the number of documents to skip
Limit: Set the maximum number of documents to return
Parameter Syntax: When defining operation parameters, remember:
Parameters defined in the operation are referenced using ${parameterName} syntax
Database field names must be in quotes (e.g., "firstName", "customerId")
Parameters don’t need to match your data model exactly - they’re placeholders that get replaced with actual values
Field names in quotes must match exactly what’s stored in the database (same as your data model)
6
Test the operation
Use the test functionality to verify your operation works correctly.
Testing an operation
Testing Delete Operations: Be extremely careful when testing delete operations (deleteOne and deleteMany) as they will actually remove documents from your collection. Always use test data or ensure you have backups before testing deletion operations in collections with important data.
7
Save the operation
Click “Save” to add the operation to your collection. It will now be available for use in workflows.
1
Select operation
From the list of operations, select the one you want to update.
2
Make changes
Update the operation name, description, or parameters as needed.
3
Test updated operation
Test the updated operation to ensure it works as expected.
4
Save changes
Save your changes to apply them to the operation.
1
Select operation
From the list of operations, select the one you want to delete.
2
Delete operation
Click the delete button and confirm the deletion when prompted.
3
Verify removal
Verify that the operation has been removed from the collection.
Instead of writing raw MongoDB query syntax, you can use the visual query builder to define filters, updates, projections, and sorting through a guided interface that understands your collection’s schema.Each operation type has a tailored builder experience. You can switch between Visual and Script mode at any time with the two icon buttons above the editor: the brick wall icon opens the visual builder, and the curly braces icon opens the JSON query (Script mode). The buttons have no text labels. The two modes work independently — saving in one mode sets that as the active query for the operation.
Switching modes does not sync changes between them. A warning message informs you that saving in the current mode will set it as the final query for the operation.
The core building block of the query builder is the condition row, used in filter sections across all operation types:
Element
Description
Field dropdown
Pick a field from the collection schema. Supports nested paths (e.g., address.city). Shows a data type badge for each field.
Operator dropdown
Type-aware operators that change based on the selected field’s data type (see table below).
Value input
Enter a static value or switch to dynamic mode using ${paramName} syntax. Input type adapts to the field type (text, number, date picker, boolean toggle, enum dropdown).
Remove button
Delete the condition row.
Multiple condition rows can be combined with AND or OR logic using a dropdown selector. AND is the default.
Each condition row is matched on its own. Two conditions on fields inside the same array of objects, such as items.sku and items.qty, can be met by different elements of the array. When both must hold on the same element, write the filter in Script mode with $elemMatch. See Filter on nested fields and arrays of objects.
intersects matches documents whose array field shares at least one value with the list you supply. The value is either a literal list of strings or numbers, or a single ${param} that resolves to a list at runtime. A parameter cannot be placed inside a literal list. Documents where the field is not an array never match.
Conditions that use intersects, like aggregation stages, are not included in the version 3 export format. Use the current export format when moving operations that rely on them.
Database operations support MongoDB aggregation pipelines, so you can group, join, reshape, and compute across documents beyond what a single query allows. A pipeline is built as an ordered list of stages — such as Filter, Sort, Projection, and Limit — each configured in the visual builder and applied in sequence to the collection. Use aggregation when you need computed results (counts, sums, grouped summaries) rather than raw documents.
FlowX Database uses MongoDB’s query capabilities through the nosql-db-runner service, providing pure MongoDB functionality. For detailed information about MongoDB query operators, filters, and syntax, refer to the MongoDB Query and Projection Operators documentation.The following MongoDB operations are supported in FlowX Database. Each tab includes practical examples that you can use as a starting point for your own operations.
sort (document, optional): Document specifying the sorting order. See Sort Query Results
skip (integer, optional): Number of documents to skip. See Limit Query Results
limit (integer, optional): Maximum number of documents to return. See Limit Query Results
projection (document, optional): Fields to include or exclude. See Project Fields
Example: List active customers
This example finds all active customers, sorts them by registration date (newest first), limits to 10 results, and returns only specific fields.Operation name: listActiveCustomers
This operation will return up to 20 electronics products with prices between $10 and $100, sorted from lowest to highest price.
Example: Filter on nested fields and arrays of objects
In Script mode, the filter goes to MongoDB unchanged, so standard MongoDB filter syntax works. Use dot notation for a field inside an object, and $elemMatch when several conditions must hold on the same element of an array.Operation name: findClujOrdersWithBulkItem
This operation returns orders shipped to Cluj that contain at least one line with SKU A1and a quantity above 2 on that same line. Without $elemMatch, {"items.sku": "A1", "items.qty": {"$gt": 2}} would also match an order where one line has SKU A1 and a different line has a quantity above 2.
This operation uses a process variable for the customer ID and returns specific customer fields. Since findOne only returns one document, sort is usually unnecessary unless you need the first document matching certain criteria.
Example: Find latest order
This example finds the most recent order for a customer.Operation name: findLatestOrder
This operation inserts multiple customer records at once. In a real scenario, you would typically reference a process variable containing the array: {processInstance.importedCustomers}
Example: Create order items
This example creates multiple order items for a single order.Operation name: createOrderItems
This operation creates multiple order item records for a single order. In practice, you would use {processInstance.items} directly if your process data model matches the database structure.
filter (document, required): Criteria to match the document to update. See Query Filter Documents
update (document, required): Update operations to apply. See Update Operators
Important Update Behavior: When using update operations without the $set operator, the entire document will be replaced with the new data. This means any fields not included in your update payload will be removed from the document. Always use the $set operator to update specific fields while preserving others.
Example: Update customer status
This example updates a customer’s status and records when the change occurred.Operation name: updateCustomerStatus
This operation updates an order with shipping information, sets the status to “shipped”, and increments a counter tracking the number of status updates.
filter (document, required): Criteria to match documents to update. See Query Filter Documents. An empty filter ({}) is rejected. To match every document on purpose, pass {"_id": {"$exists": true}}.
update (document, required): Update operations to apply. See Update Operators
Important Update Behavior: When using update operations without the $set operator, the entire document will be replaced with the new data. This means any fields not included in your update payload will be removed from the document.For example, if a document has id, name, and email, and you update only the name field without using $set, the email field will be deleted. Always use the $set operator to update specific fields while preserving others.
Example: Deactivate inactive customers
This example updates the status of multiple customers based on their last activity date.Operation name: deactivateInactiveCustomers
This operation identifies all active customers whose last activity date is older than a threshold date and marks them as inactive.
Key MongoDB Operators: This example uses $lt (less than) for date comparison and $set to update specific fields without affecting other customer data. The $set operator is essential for partial document updates.
Example: Update multiple customers by ID list
This example demonstrates updating multiple specific customers using the $in operator.Operation name: updateCustomersByIdList
This operation updates all customers whose IDs are in the provided list, setting contact information for multiple customers at once.
Standard MongoDB Pattern: The combination of $in for filtering and $set for updating is a standard pattern in MongoDB. Use $in when you need to match against a list of values, and always use $set to avoid replacing the entire document.
Example: Apply discount to products
This example applies a discount to all products in a specific category.Operation name: applySeasonalDiscount
This operation applies a discount to all products in a specific category by multiplying the price by a discount factor (e.g., 0.8 for 20% off) and setting sale-related fields.
MongoDB Operators in Action: This example demonstrates essential MongoDB operators:
$mul multiplies the price by the discount factor
$set updates specific fields without affecting others
In the filter, you could use $in to target multiple categories: "category": {"$in": ["electronics", "clothing"]}
This operation deletes a customer record with the specified ID. Make sure to implement proper validation and confirmation before executing deletion operations.
Example: Remove abandoned cart
This example removes an abandoned shopping cart after confirmation.Operation name: removeAbandonedCart
filter (document, required): Criteria to match documents to delete. See Query Filter Documents. An empty filter ({}) is rejected. To match every document on purpose, pass {"_id": {"$exists": true}}.
Example: Purge temporary records
This example removes all temporary records older than a specified date.Operation name: purgeTemporaryRecords
This operation removes all documents marked as “temporary” that were created before a specific date. Use with caution as this will delete all matching records.
Example: Clear completed tasks
This example removes all completed tasks for a specific user.Operation name: clearCompletedTasks
This operation removes all tasks that are marked as completed, were assigned to a specific user, and were completed before a certain date.
Always use caution with update and delete operations, especially those that affect multiple documents (updateMany, deleteMany). Always include specific filter criteria to avoid unintended changes to your data.UPDATE, UPDATE_MANY, DELETE, and DELETE_MANY operations with a missing or empty filter are rejected with the error <operation> requires a non-empty filter. To match every document on purpose, use the filter {"_id": {"$exists": true}}.
Multiple versions of documents are stored in the collection. Upon retrieval, all data that fits the filter conditions will be retrieved regardless of version.
No automatic migration capabilities are available. Any migration will need to be done manually by the DevOps team.
In the initial release, FlowX Database does not support transactions across multiple collections.
Data validation based on a schema is not yet supported.
FlowX Database provides a persistence layer that enables you to store and share data across different processes and projects. By using MongoDB’s capabilities through the nosql-db-runner service, FlowX Database offers:
Flexible data storage for any structured data
Data sharing between process instances
Integration with workflows
Independence from external systems for basic data persistence
FlowX Database does not replace Data Search. Each serves different purposes in the platform.
FlowX Database
Data Search
Acts as a persistent data store
Optimized for CRUD operations
Stores structured business data
Designed for sharing data across processes
Uses MongoDB as the underlying technology (via nosql-db-runner service)
Provides indexing and search capabilities
Optimized for quick lookups and aggregations
Used for debugging and analytics
Enables searching across process instances
Uses Elasticsearch as the underlying technology
What types of data should I store in FlowX Database?
FlowX Database is designed for operational data with temporary character, including:
Dashboard data: Aggregated information for reporting and visualization. For example, create operations that gather information from multiple processes and pull all the data to calculate sums, averages, or other metrics for executive dashboards
Cached data: Frequently accessed information that changes periodically, such as:
Daily exchange rates for financial calculations
Product catalogs that update weekly
Configuration data that multiple processes need to access
Internal operational comments: Information that needs to be shared between users but shouldn’t reach business systems, such as:
Internal comments in a client’s profile for bank tellers
Notes and annotations that support decision-making across different process instances
Communication logs between team members working on the same case
Shared process data: Information that needs to be accessed across multiple process instances - this solves the key pain point of data sharing between different process instances
Temporary operational data: Working data that supports business processes but isn’t part of your permanent records
Important: FlowX Database should not become your primary book of records or system of record. Use it for operational data that supports your processes, not for critical business data that requires long-term retention and governance.
Can I share FlowX Database collections between different projects?
Yes, you can share collections between projects using the library approach:
Create collections in one project: Set up your FlowX Database collections in a primary project
Include as libraries: Add these collections as libraries in other projects that need access
Maintain consistency: This approach ensures all projects use the same data structures and operations
Future-proof management: Having centralized collection definitions makes updates and maintenance easier across all projects
This pattern is particularly useful for shared reference data, common configurations, or cross-project operational data.
Collection Ownership: Each FlowX Database collection has an owner - either the project where it was created or the library that contains it. By default, only processes and workflows within the same project can access a collection. If you need to access the same collection from multiple projects, create it in a library and then include that library in all projects that need access.
Why doesn't FlowX Database support automatic data migration?
FlowX Database intentionally does not provide automatic migration capabilities for several important reasons:
Data integrity: Many documents need to remain in their original format to maintain historical accuracy and compliance requirements
Process dependencies: Existing processes may depend on specific data structures, and automatic changes could break functionality
Business context: Data migration often requires business logic and context that automated systems cannot provide
Risk management: Manual migration allows for proper testing and validation before changes are applied
When you need to modify data structures, plan for manual migration processes with proper testing and validation procedures handled by your DevOps team.
Can I store different types of documents in the same collection?
No, this is strongly discouraged. Each collection should contain documents with the same structure and purpose.DON’T DO IT - Mixing different document types in one collection can lead to:
Query complexity: Filtering becomes more complex when documents have different schemas
Performance issues: Indexes become less effective with mixed document types
Maintenance problems: Updates and changes become harder to manage
Data consistency: Harder to ensure data quality and validation
Instead, create separate collections for each document type, even if they seem related. This follows MongoDB best practices and keeps your data organized and manageable.
How does FlowX Database solve cross-process data sharing?
FlowX Database solves the key pain point of accessing the same data from multiple process instances:
Cross-instance access: Multiple process instances can read from and write to the same collections simultaneously
Data persistence: Data remains available even after individual processes complete
Shared state: Enables complex workflows where processes need to coordinate through shared data
This capability enables use cases like multi-step approval processes, shared customer data across different business processes, and coordinated workflows that span multiple process instances - addressing a major limitation of traditional process-scoped data storage.
What's the relationship between FlowX Database and the nosql-db-runner service?
FlowX Database is powered by the nosql-db-runner microservice, which provides:
Pure MongoDB functionality: Direct access to MongoDB operations within the FlowX ecosystem
Native integration: Connection between FlowX workflows and MongoDB operations
Scalable architecture: A dedicated service that can be scaled independently based on database operation needs
The nosql-db-runner acts as the bridge between FlowX’s workflow engine and MongoDB, enabling you to use MongoDB’s full capabilities while maintaining FlowX’s process orchestration capabilities.
Hands-on course covering systems, data sources, workflows, and database integration patterns
Data Mappers course
Learn data mapping and transformation between process and integration workflows
Academy playground — explore the database project for working examples of find, findOne, insert, and update operations.
Last modified on October 30, 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"FlowX.AI","description":"Comprehensive documentation for FlowX.AI, the AI-driven process automation platform.","colors":{"primary":"#fcb813","light":"#fcb813","dark":"#fcb813"},"logo":{"light":"https://mintcdn.com/flowxai/38fXEM0a7v86Lg2m/logo/light.png?fit=max\u0026auto=format\u0026n=38fXEM0a7v86Lg2m\u0026q=85\u0026s=d767c06cef433b0a02f40a1f4f785eab","dark":"https://mintcdn.com/flowxai/38fXEM0a7v86Lg2m/logo/dark.png?fit=max\u0026auto=format\u0026n=38fXEM0a7v86Lg2m\u0026q=85\u0026s=6b8b8c3e7abd17acf6be8bffce4e599d"},"favicon":"https://mintcdn.com/flowxai/VVxnbzjz7JuL1Ngt/favicon2.svg?fit=max\u0026auto=format\u0026n=VVxnbzjz7JuL1Ngt\u0026q=85\u0026s=ef6a780a1ed3894c7b276bcc7b3c6c69","appearance":{"default":"dark","strict":false},"background":{"decoration":"grid","color":{"light":"#f4f4f5","dark":"#0a0b0d"}},"navbar":{"links":[],"primary":{"type":"button","label":"Academy","href":"https://academy.flowx.ai/"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/flowxai","x":"https://x.com/FlowX_ai","youtube":"https://www.youtube.com/@FlowX_AI"},"links":[{"header":"Documentation","items":[{"label":"Introduction","href":"https://docs.flowx.ai/5.9/docs/introduction"},{"label":"Platform overview","href":"https://docs.flowx.ai/5.9/docs/platform-overview/flowx-architecture"},{"label":"Designer","href":"https://docs.flowx.ai/5.9/docs/flowx-designer/overview"},{"label":"AI Platform","href":"https://docs.flowx.ai/5.9/ai-platform/ai-in-flowx"},{"label":"Use the docs with AI","href":"https://docs.flowx.ai/5.9/docs/getting-started/using-flowx-docs-with-ai"},{"label":"Release notes","href":"https://docs.flowx.ai/release-notes/overview"}]},{"header":"Resources","items":[{"label":"FlowX.AI Academy","href":"https://academy.flowx.ai"},{"label":"Support","href":"https://flowxai.zendesk.com/"}]},{"header":"Company","items":[{"label":"About FlowX.AI","href":"https://www.flowx.ai/about"},{"label":"Contact us","href":"mailto:hello@flowx.ai"},{"label":"Careers","href":"https://apply.workable.com/flowxai"}]},{"header":"Legal","items":[{"label":"Privacy Policy","href":"https://www.flowx.ai/privacy-policy"},{"label":"Cookie Policy","href":"https://www.flowx.ai/cookie-policy"},{"label":"Terms and Conditions","href":"https://www.flowx.ai/terms-and-conditions"}]}]},"search":{"prompt":"Search the docs"},"seo":{"metatags":{"zd-site-verification":"94tteg5ir5of8gkb4twzh"}},"fonts":{"heading":{"family":"Sora"},"body":{"family":"Geist"}},"styling":{"eyebrows":"breadcrumbs","codeblocks":"dark","latex":true},"integrations":{"ga4":{"measurementId":"G-CGW0FVK9YM"}},"banner":{"content":"🚀 [See the latest FlowX.AI releases →](/release-notes/overview)","dismissible":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"flowxai","hasAudioNarration":false,"actualSubdomain":"flowxai","customDomains":["docs.flowx.ai"],"gitSource":{"type":"github","owner":"flowx-ai","repo":"flowx-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4c8fd7f8a500a1fd86923","collectionId":"f43bb162-8d91-4fce-8112-9a85f1f82724","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4c8fd7f8a500a1fd86923"},"feedback":{"thumbs":true,"contextualFeedback":{"allowEmail":true},"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4c8fd7f8a500a1fd86923","clientVersion":"0.0.4039","searchFilterCounts":[{"language":"default","tag":"Documentation","count":787},{"language":"default","tag":"Building blocks","count":329},{"language":"default","tag":"Platform deep dive","count":257},{"language":"default","tag":"Setup guides","count":191},{"language":"default","tag":"UI Designer","count":140},{"language":"default","tag":"Release notes","count":137},{"language":"default","tag":"Release Notes","count":137},{"language":"default","tag":"Microservices","count":112},{"language":"default","tag":"Core extensions","count":107},{"language":"default","tag":"Nodes","count":88}],"searchSettings":{"isFiltersEnabled":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"type":"email","email":"learning.team@flowx.ai","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":true},"customCss":[{"filePath":"custom.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n@keyframes fxh-tick-pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes fxh-caret-blink{50%{opacity:0}}@keyframes fxh-ln-in{to{opacity:1;transform:none}}@keyframes fxh-rv-in{to{opacity:1;transform:none}}@keyframes fxl-stack-ride{0%{top:0;opacity:0}4%{opacity:1}52%{top:calc(100% - 7px);opacity:1}58%,to{top:calc(100% - 7px);opacity:0}}@keyframes fxl-stack-lit{0%,2%,30%,to{color:var(--fxl-faint)}18%,6%{color:var(--fxl-text)}}@keyframes fxl-stack-tick{0%,2%,30%,to{background:var(--fxl-line)}18%,6%{background:#fcb813}}code,kbd,pre,samp{font-family:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,monospace}#topbar-cta-button{color:#131007!important}.label-version{display:inline-block;font-weight:700;color:#fff;background-color:#007bff;padding:.5px 15px;border-radius:12px;box-shadow:0 2px 4px rgba(0,0,0,.1);font-size:.9em;text-transform:uppercase;letter-spacing:.5px;margin-right:5px;transition:background-color .3s ease;text-decoration:none}.label-version:hover{background-color:#0056b3}#banner{background:linear-gradient(90deg,#0a0b0d 0,#0e1013 55%,#2a2310 100%)!important;border-bottom:1px solid rgba(252,184,19,.3);backdrop-filter:saturate(120%)}#banner a{color:#fcb813!important;text-decoration-color:rgba(252,184,19,.55)!important;transition:opacity .2s ease}#banner a:hover{opacity:.85}:root{--flowx-yellow-50:#fff8e7;--flowx-yellow-200:#ffdf92;--flowx-yellow-400:#ffc739;--flowx-yellow-500:#fcb813;--flowx-yellow-800:#8a5e00;--flowx-yellow-900:#6b4e08;--flowx-neutrals-50:#f7f8f9;--flowx-neutrals-100:#e3e8ed;--flowx-neutrals-200:#cbd1db;--flowx-neutrals-300:#a6b0be;--flowx-neutrals-400:#8390a2;--flowx-neutrals-500:#64748b;--flowx-neutrals-700:#475263;--flowx-neutrals-800:#2a313a;--flowx-neutrals-900:#1d232c;--flowx-blue-50:#e6f0fb;--flowx-blue-200:#8abbed;--flowx-blue-700:#004c99;--flowx-blue-900:#002d5b;--flowx-elevation-m:0 8px 16px #1634621a}.cb-wrap{margin-top:32px}.cb-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.cb-filters input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.cb-filters label{cursor:pointer;user-select:none;font-size:12px;line-height:16px;font-weight:600;padding:8px 16px;border-radius:120px;border:1px solid var(--flowx-neutrals-200);color:var(--flowx-neutrals-500);background:0 0;transition:border-color .15s ease,background .15s ease,color .15s ease}.cb-filters label span{margin-left:6px;opacity:.55;font-variant-numeric:tabular-nums}.cb-filters label:hover{border-color:var(--flowx-yellow-500);color:var(--flowx-neutrals-900)}.cb-filters input:checked+label,.dark .cb-filters input:checked+label{background:var(--flowx-yellow-500);border-color:var(--flowx-yellow-500);color:var(--flowx-neutrals-900)}.cb-filters input:focus-visible+label{outline:2px solid var(--flowx-yellow-500);outline-offset:2px}.dark .cb-filters label{border-color:var(--flowx-neutrals-700);color:var(--flowx-neutrals-400)}.dark .cb-filters label:hover{border-color:var(--flowx-yellow-400);color:var(--flowx-neutrals-50)}.cb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}@media (max-width:1024px){.cb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.cb-grid{grid-template-columns:1fr}}.cb-wrap:has(#cb-conv:checked) .cb-card:not([data-f~=conversational]),.cb-wrap:has(#cb-cookbook:checked) .cb-card:not([data-f~=cookbook]),.cb-wrap:has(#cb-docs:checked) .cb-card:not([data-f~=docs]),.cb-wrap:has(#cb-guide:checked) .cb-card:not([data-f~=guide]),.cb-wrap:has(#cb-integr:checked) .cb-card:not([data-f~=integrations]),.cb-wrap:has(#cb-pattern:checked) .cb-card:not([data-f~=pattern]),.cb-wrap:has(#cb-tutorial:checked) .cb-card:not([data-f~=tutorial]),.cb-wrap:has(#cb-ui:checked) .cb-card:not([data-f~=ui]){display:none}.cb-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:24px;border:1px solid var(--flowx-neutrals-100);border-radius:16px;background:0 0;text-decoration:none!important;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.cb-card::after{content:\"\\2192\";position:absolute;top:20px;right:24px;font-size:14px;line-height:22px;color:var(--flowx-neutrals-300);transition:color .2s ease,transform .2s ease}.cb-card:hover{transform:translateY(-2px);border-color:var(--flowx-yellow-500);box-shadow:var(--flowx-elevation-m)}.cb-card:hover::after{color:var(--flowx-neutrals-900);transform:translateX(4px)}.dark .cb-card{border-color:var(--flowx-neutrals-800)}.dark .cb-card:hover{border-color:var(--flowx-yellow-400);box-shadow:0 8px 16px rgba(0,0,0,.4)}.dark .cb-card:hover::after,.dark .cb-foot a:hover{color:var(--flowx-yellow-400)}@media (prefers-reduced-motion:reduce){.cb-card,.cb-card::after{transition:none}.cb-card:hover,.cb-card:hover::after{transform:none}}.cb-tags{display:flex;flex-wrap:wrap;gap:6px;padding-right:24px}.cb-tag{font-size:10px;line-height:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:4px 8px;border-radius:4px;background:var(--flowx-neutrals-50);color:var(--flowx-neutrals-500)}.cb-tag-tut{background:var(--flowx-yellow-50);color:var(--flowx-yellow-800)}.cb-tag-pat{background:var(--flowx-neutrals-900);color:#fff}.cb-tag-cook{background:var(--flowx-yellow-500);color:var(--flowx-neutrals-900)}.cb-tag-gui{background:var(--flowx-blue-50);color:var(--flowx-blue-700)}.dark .cb-tag{background:var(--flowx-neutrals-800);color:var(--flowx-neutrals-400)}.dark .cb-tag-tut{background:var(--flowx-yellow-900);color:var(--flowx-yellow-200)}.dark .cb-tag-pat{background:var(--flowx-neutrals-50);color:var(--flowx-neutrals-900)}.dark .cb-tag-cook{background:var(--flowx-yellow-500);color:var(--flowx-neutrals-900)}.dark .cb-tag-gui{background:var(--flowx-blue-900);color:var(--flowx-blue-200)}.cb-foot a,.cb-title{font-weight:600;color:var(--flowx-neutrals-900)}.cb-title{display:block;font-size:14px;line-height:22px;letter-spacing:-.01em}.dark .cb-foot a,.dark .cb-title{color:var(--flowx-neutrals-50)}.cb-desc{display:block;font-size:12px;line-height:18px;font-weight:400;color:var(--flowx-neutrals-500)}.cb-foot span,.dark .cb-desc{color:var(--flowx-neutrals-400)}.cb-foot{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px;margin-top:40px;padding-top:24px;border-top:1px solid var(--flowx-neutrals-100);font-size:12px;line-height:16px}.dark .cb-foot{border-top-color:var(--flowx-neutrals-800)}.dark .cb-foot span{color:var(--flowx-neutrals-500)}.cb-foot a{text-decoration:none;border-bottom:1px solid var(--flowx-yellow-500);padding-bottom:1px}.cb-foot a:hover{color:var(--flowx-yellow-800)}#content-area:has(.fxh-hero) #header{display:none}main#content-container:has(.fxh-hero){max-width:none}#content-area:has(.fxh-hero){width:100%!important}#content-area:has(.fxh-hero) #content{max-width:none;margin-top:0}#content-area:has(.fxh-hero) #content div[class*=\"--page-padding\"]{--page-padding:0px}#content-area:has(.fxh-hero) #content>:not(.fxh-hero){max-width:1360px;margin-left:auto;margin-right:auto}.fxh-hero{position:relative;text-align:center}@media (min-width:1024px){.fxh-hero{margin-top:-2.5rem}}.fxh-hero__bg{position:sticky;top:0;z-index:0;height:100dvh;overflow:clip;border-radius:18px;background:#0a0b0d;border:1px solid rgba(255,255,255,.08)}.fxh-hero__bg::after,.fxh-hero__bg::before{content:\"\";position:absolute;pointer-events:none}.fxh-hero__bg::before{inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at 50% 0,#000 25%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 0,#000 25%,transparent 75%)}.fxh-hero__bg::after{top:-45%;left:25%;width:50%;height:90%;background:radial-gradient(closest-side,rgba(252,184,19,.1),transparent 70%)}.fxh-hero__steps{position:relative;z-index:1;margin-top:-100dvh}.fxh-hero__step{position:relative;min-height:calc(100dvh - 9.5rem);display:grid;grid-template-columns:minmax(0,1fr);align-content:center;padding:48px clamp(24px,5vw,56px) 96px}.fxh-hero__step:not(:first-child){min-height:72dvh;padding-top:48px;padding-bottom:48px}.fxh-hero--single .fxh-hero__bg{position:absolute;inset:0;height:auto;z-index:0}.fxh-hero--single .fxh-hero__steps{margin-top:0}.fxh-hero--single .fxh-hero__step{min-height:calc(100dvh - 9.5rem)}.fxh-hero--slim .fxh-hero__step{min-height:min(46dvh,480px);padding-top:clamp(40px,6vh,64px);padding-bottom:clamp(40px,6vh,64px)}.fxh-step-title{display:block;font-family:\"Sora\",sans-serif;font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:700;letter-spacing:-.02em;line-height:1.1;color:#f5f5f0;max-width:20ch;margin:0 auto clamp(18px,3vh,28px)}.fxh-vs{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(9px,1.1vw,14px);max-width:min(780px,100%);margin:clamp(14px,3vh,30px) auto 0;padding:0;list-style:none}.fxh-vs li{display:flex;align-items:center;gap:12px;padding:11px clamp(18px,1.6vw,24px);border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.035);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px}.fxh-vs__no{font-family:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:rgba(255,255,255,.42)}.fxh-vs__name{font-family:\"Sora\",sans-serif;font-size:clamp(12.5px,1.1vw,15px);font-weight:600;letter-spacing:.01em;color:rgba(255,255,255,.9)}.fxh-scroll{position:absolute;bottom:clamp(20px,4vh,40px);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font-family:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.42)}.fxh-scroll-line{width:1px;height:46px;background:linear-gradient(rgba(255,255,255,.45),transparent)}.fxh-eyebrow{font-family:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:#a3a39a;margin-bottom:28px}.fxh-tick{display:inline-block;width:8px;height:8px;flex-shrink:0;background:#fcb813;animation:fxh-tick-pulse 2.6s ease-in-out infinite}.fxh-title{display:block;font-family:\"Sora\",sans-serif;font-weight:700;letter-spacing:-.02em;line-height:1.08;max-width:920px;margin:0 auto clamp(20px,3vh,28px);text-wrap:balance}.fxh-line{display:block;font-size:clamp(1.7rem,3.4vw,2.7rem);color:#f5f5f0}.fxh-line--dim{color:rgba(244,245,243,.58);margin-top:.06em}.fxh-amber{color:#fcb813}.fxh-sub{display:block;max-width:62ch;margin:0 auto clamp(20px,3vh,28px);font-size:15px;line-height:1.55;color:#b9b9b1}.fxh-cta,.fxh-ctas{justify-content:center}.fxh-ctas{display:flex;flex-wrap:wrap;gap:12px;position:relative}.fxh-cta{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:12px 22px;border-radius:10px;font-size:15px;font-weight:550;text-decoration:none!important;transition:background .2s ease,border-color .2s ease,color .2s ease}.fxh-cta--primary{background:#fcb813;color:#131007!important;font-weight:640}.fxh-cta--primary:hover{background:#ffc739}.fxh-cta--ghost{border:1px solid rgba(255,255,255,.16);color:#f4f5f3!important}.fxh-cta--ghost:hover{border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.04)}.fxh-term,.fxh-term__dots i{border:1px solid rgba(255,255,255,.12)}.fxh-term{position:relative;width:min(680px,100%);margin:clamp(24px,4vh,36px) auto clamp(22px,3.5vh,32px);text-align:left;border-radius:18px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.1) 0,rgba(255,255,255,.03) 20%,rgba(255,255,255,.01) 60%,rgba(255,255,255,.045) 100%),rgba(10,11,13,.91);box-shadow:0 24px 60px rgba(0,0,0,.5)}.fxh-term__bar{display:flex;align-items:center;gap:16px;padding:14px 22px;font-family:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.06em;color:rgba(255,255,255,.62);border-bottom:1px solid rgba(255,255,255,.12)}.fxh-term__dots{display:inline-flex;gap:7px}.fxh-term__dots i{width:11px;height:11px;border-radius:50%}.fxh-term__body{display:flex;flex-direction:column;gap:14px;padding:24px 26px 26px;font-family:\"Geist Mono\",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.fxh-term__body p{margin:0;color:rgba(255,255,255,.72)}.fxh-term__prompt{color:#fcb813;margin-right:8px}.fxh-caret{display:inline-block;width:9px;height:1.05em;margin-left:6px;vertical-align:text-bottom;background:rgba(252,184,19,.85);animation:fxh-caret-blink 1.1s steps(1) infinite}.fxh-term__log{display:grid;gap:5px;align-content:start}.fxh-term__log:empty{display:none}.fxh-term__log .ln{display:flex;justify-content:space-between;gap:16px;font-size:12.5px;color:rgba(255,255,255,.58);opacity:0;transform:translateY(6px);animation:fxh-ln-in .45s cubic-bezier(.16,1,.3,1) forwards}.fxh-term__log .ok{color:#fcb813;margin-right:8px}.fxh-term__log .t,.fxh-term__ver{color:rgba(255,255,255,.34)}.fxh-term__ver{margin-left:auto}.fxh-field{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.55}#footer a[href*=\"utm_campaign=poweredBy\"],.fxh-hero--live .fxh-hero__bg::before{display:none}.fxh-hero--live .fxh-hero__step:first-child .fxh-ctas,.fxh-hero--live .fxh-hero__step:first-child .fxh-eyebrow,.fxh-hero--live .fxh-hero__step:first-child .fxh-scroll,.fxh-hero--live .fxh-hero__step:first-child .fxh-sub,.fxh-hero--live .fxh-hero__step:first-child .fxh-title{opacity:0;transform:translateY(26px);animation:fxh-rv-in .9s cubic-bezier(.16,1,.3,1) forwards}.fxh-hero--live .fxh-hero__step:first-child .fxh-eyebrow{animation-delay:.15s}.fxh-hero--live .fxh-hero__step:first-child .fxh-title{animation-delay:.26s}.fxh-hero--live .fxh-hero__step:first-child .fxh-sub{animation-delay:.48s}.fxh-hero--live .fxh-hero__step:first-child .fxh-ctas{animation-delay:.59s}.fxh-hero--live .fxh-hero__step:first-child .fxh-scroll{animation-delay:.92s}@media (max-width:640px){.fxh-hero__step{padding:72px 20px}}@media (prefers-reduced-motion:reduce){.fxh-caret,.fxh-tick{animation:none}.fxh-hero--live .fxh-hero__step:first-child .fxh-ctas,.fxh-hero--live .fxh-hero__step:first-child .fxh-eyebrow,.fxh-hero--live .fxh-hero__step:first-child .fxh-scroll,.fxh-hero--live .fxh-hero__step:first-child .fxh-sub,.fxh-hero--live .fxh-hero__step:first-child .fxh-title{animation:none;opacity:1;transform:none}}.cb-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:640px){.cb-grid--2{grid-template-columns:1fr}}:root{--fxl-mono:\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, monospace;--fxl-display:\"Sora\", sans-serif;--fxl-ease:cubic-bezier(0.16, 1, 0.3, 1);--fxl-text:#17181b;--fxl-dim:rgba(23, 24, 27, 0.64);--fxl-faint:rgba(23, 24, 27, 0.44);--fxl-line:rgba(24, 24, 27, 0.12);--fxl-line-soft:rgba(24, 24, 27, 0.07);--fxl-amber-text:#8a5e00;--fxl-bg:#f4f4f5;--fxl-panel:#fcfcfd;--fxl-amber-soft:rgba(252, 184, 19, 0.12)}.dark{--fxl-text:#f4f5f3;--fxl-dim:rgba(244, 245, 243, 0.58);--fxl-faint:rgba(244, 245, 243, 0.34);--fxl-line:rgba(255, 255, 255, 0.08);--fxl-line-soft:rgba(255, 255, 255, 0.05);--fxl-amber-text:#fcb813;--fxl-bg:#0a0b0d;--fxl-panel:#0c0e11;--fxl-amber-soft:rgba(252, 184, 19, 0.08)}.fxl-no{display:flex;align-items:center;gap:12px;font-family:var(--fxl-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--fxl-faint);margin-top:8px}.fxl-no::after{content:\"\";flex:1;height:1px;background:var(--fxl-line-soft)}.fxl-no+h2{margin-top:10px}.fxl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--fxl-line);border:1px solid var(--fxl-line);border-radius:16px;overflow:hidden}.fxl-cell{position:relative;display:block;background:var(--fxl-panel);padding:clamp(24px,2.6vw,34px);text-decoration:none!important;transition:background .2s ease}.fxl-cell:hover{background:var(--fxl-amber-soft)}.fxl-cell::after{content:\"\\2192\";position:absolute;top:24px;right:26px;font-family:var(--fxl-mono);font-size:14px;color:var(--fxl-faint);transition:color .2s ease,transform .2s ease}.fxl-cell:hover::after{color:var(--fxl-amber-text);transform:translateX(4px)}.fxl-cell__no{display:block;font-family:var(--fxl-mono);font-size:11px;letter-spacing:.2em;color:var(--fxl-amber-text);margin-bottom:14px}.fxl-cell__title{display:block;font-family:var(--fxl-display);font-size:18px;font-weight:600;letter-spacing:-.01em;color:var(--fxl-text);margin-bottom:6px}.fxl-cell__desc{display:block;font-size:13.5px;line-height:1.5;color:var(--fxl-dim);max-width:46ch}.fxl-grid--1{grid-template-columns:1fr}.fxl-grid--3{grid-template-columns:repeat(3,1fr)}@media (max-width:1024px){.fxl-grid--3{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.fxl-grid,.fxl-grid--3{grid-template-columns:1fr}}.fxl-cell--eval{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:32px;align-items:center}.fxl-cell--eval::after{content:none}.fxl-cell--eval:hover{background:var(--fxl-panel)}.fxl-eval__links{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:18px}.fxl-eval__links a,.fxl-stack{font-family:var(--fxl-mono);font-size:12px}.fxl-eval__links a{color:var(--fxl-amber-text);text-decoration:none!important;border-bottom:1px solid rgba(252,184,19,.45);padding-bottom:1px}.fxl-eval__links a:hover{border-bottom-color:var(--fxl-amber-text)}.fxl-stack{color:var(--fxl-faint)}.fxl-stack__row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 12px 7px 30px;border-bottom:1px solid var(--fxl-line-soft)}.fxl-rails li:last-child,.fxl-stack__row:last-child{border-bottom:none}.fxl-stack__row span:last-child{font-size:10.5px;letter-spacing:.08em;opacity:.8}.fxl-stack__tick{position:absolute;left:10px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:2px;background:var(--fxl-line)}.fxl-stack__client{border:1px solid var(--fxl-line);border-radius:10px;color:var(--fxl-dim)}.fxl-stack__client .fxl-stack__tick{background:#fcb813}.fxl-stack__gw{display:flex;align-items:center;gap:10px;padding:10px 0 10px 30px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}.fxl-stack__gw::after{content:\"\";flex:1;height:1px;background:repeating-linear-gradient(90deg,var(--fxl-line) 0 4px,transparent 4px 8px)}.fxl-stack__svc{position:relative;border:1px solid var(--fxl-line);border-radius:10px;overflow:hidden}.fxl-stack__spine{position:absolute;left:13px;top:0;bottom:0;width:1px;background:var(--fxl-line)}.fxl-stack__pulse{position:absolute;left:10px;top:0;width:7px;height:7px;border-radius:50%;background:#fcb813;box-shadow:0 0 0 4px rgba(252,184,19,.18);opacity:0;animation:fxl-stack-ride 6.6s linear infinite}.fxl-stack__svc .fxl-stack__row,.fxl-stack__svc .fxl-stack__tick{animation:6.6s linear infinite}.fxl-stack__svc .fxl-stack__row{animation-name:fxl-stack-lit}.fxl-stack__svc .fxl-stack__tick{animation-name:fxl-stack-tick}.fxl-stack__svc .fxl-stack__row:nth-child(4),.fxl-stack__svc .fxl-stack__row:nth-child(4) .fxl-stack__tick{animation-delay:.55s}.fxl-stack__svc .fxl-stack__row:nth-child(5),.fxl-stack__svc .fxl-stack__row:nth-child(5) .fxl-stack__tick{animation-delay:1.1s}.fxl-stack__svc .fxl-stack__row:nth-child(6),.fxl-stack__svc .fxl-stack__row:nth-child(6) .fxl-stack__tick{animation-delay:1.65s}.fxl-stack__svc .fxl-stack__row:nth-child(7),.fxl-stack__svc .fxl-stack__row:nth-child(7) .fxl-stack__tick{animation-delay:2.2s}.fxl-stack__svc .fxl-stack__row:nth-child(8),.fxl-stack__svc .fxl-stack__row:nth-child(8) .fxl-stack__tick{animation-delay:2.75s}.fxl-stack__foot{display:flex;justify-content:space-between;margin-top:8px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}.fxl-rails a:hover,.fxl-stack__bus{color:var(--fxl-amber-text)}@media (prefers-reduced-motion:reduce){.fxl-stack__pulse,.fxl-stack__svc .fxl-stack__row,.fxl-stack__svc .fxl-stack__tick{animation:none}.fxl-stack__svc .fxl-stack__row{color:var(--fxl-dim)}}@media (max-width:768px){.fxl-cell--eval{grid-template-columns:1fr;gap:24px}}.fxl-flow{display:flex;align-items:stretch;gap:14px}.fxl-flow__stage{flex:1;border:1px solid var(--fxl-line);background:var(--fxl-panel);border-radius:14px;padding:20px 22px}.fxl-flow__no{display:block;font-family:var(--fxl-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--fxl-amber-text);margin-bottom:10px}.fxl-flow__title{display:block;font-family:var(--fxl-display);font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--fxl-text)}.fxl-flow__desc{display:block;margin-top:6px;font-size:12.5px;line-height:1.5;color:var(--fxl-dim)}.fxl-flow__arrow{align-self:center;flex-shrink:0;font-family:var(--fxl-mono);font-size:16px;color:var(--fxl-amber-text)}@media (max-width:768px){.fxl-flow{flex-direction:column}.fxl-flow__arrow{transform:rotate(90deg)}}.fxl-rails{list-style:none;padding:0;margin:0;font-family:var(--fxl-mono);font-size:13px;color:var(--fxl-dim)}.fxl-rails li{display:flex;align-items:baseline;gap:12px;padding:12px 0;border-bottom:1px solid var(--fxl-line-soft)}.fxl-rails__state{align-self:center;flex-shrink:0;width:7px;height:7px;border-radius:2px;background:#fcb813}.fxl-rails a{color:var(--fxl-text);text-decoration:none;border-bottom:1px solid rgba(252,184,19,.45);padding-bottom:1px;transition:color .15s ease}.fxl-rails em{margin-left:auto;padding-left:16px;flex-shrink:0;font-style:normal;font-size:11px;letter-spacing:.1em;color:var(--fxl-faint)}.fxl-proc{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;list-style:none;padding:0;margin:0;background:var(--fxl-line);border:1px solid var(--fxl-line);border-radius:16px;overflow:hidden}.fxl-proc li{background:var(--fxl-bg);padding:clamp(22px,2.4vw,32px);margin:0}.fxl-proc a,.fxl-proc__no{font-family:var(--fxl-mono);color:var(--fxl-amber-text)}.fxl-proc__no{display:block;font-size:11px;letter-spacing:.2em;margin-bottom:16px}.fxl-proc__title{display:block;font-family:var(--fxl-display);font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--fxl-text);margin-bottom:8px}.fxl-proc__desc{display:block;font-size:13.5px;line-height:1.55;color:var(--fxl-dim)}.fxl-proc a{display:inline-block;margin-top:12px;font-size:12px;text-decoration:none;border-bottom:1px solid rgba(252,184,19,.45);padding-bottom:1px}.fxl-proc a:hover{border-bottom-color:var(--fxl-amber-text)}@media (max-width:1024px){.fxl-proc{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.fxl-proc{grid-template-columns:1fr}}.fxl-reg{border:1px solid var(--fxl-line);background:var(--fxl-panel);border-radius:16px;padding:clamp(16px,2.5vw,28px)}.fxl-reg__hd,.fxl-reg__row{display:grid;grid-template-columns:minmax(180px,1.2fr) 2fr 150px 24px;gap:16px;align-items:baseline;font-family:var(--fxl-mono)}.fxl-reg__hd{font-size:11px;letter-spacing:.08em;color:var(--fxl-faint);padding-bottom:10px}.fxl-reg__hd,.fxl-reg__item{border-bottom:1px solid var(--fxl-line-soft)}.fxl-reg__item:last-child{border-bottom:none}.fxl-reg__toggle{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.fxl-reg__row{padding:14px 0;cursor:pointer;font-size:12.5px;user-select:none}.fxl-reg__toggle:focus-visible+.fxl-reg__row{outline:2px solid #fcb813;outline-offset:2px}.fxl-reg__type{font-size:10px;letter-spacing:.12em;color:var(--fxl-faint);margin-left:6px}.fxl-reg__type--lts,a.fxl-reg__row:hover .fxl-reg__name{color:var(--fxl-amber-text)}a.fxl-reg__row{text-decoration:none!important;transition:background .15s ease}a.fxl-reg__row:hover{background:var(--fxl-amber-soft)}.fxl-reg__name{color:var(--fxl-text);font-weight:500}.fxl-reg__caps{color:var(--fxl-dim)}.fxl-reg__status{color:var(--fxl-amber-text);white-space:nowrap}.fxl-reg__mark{color:var(--fxl-amber-text);font-size:14px;text-align:right;transition:transform .3s var(--fxl-ease)}.fxl-reg__item:has(.fxl-reg__toggle:checked) .fxl-reg__mark{transform:rotate(45deg)}.fxl-reg__body{display:none;padding:2px 0 18px;font-size:13.5px;line-height:1.6;color:var(--fxl-dim);max-width:72ch}.fxl-reg__item:has(.fxl-reg__toggle:checked) .fxl-reg__body{display:block}.fxl-reg__body p{margin:0 0 8px}.fxl-reg__body strong{color:var(--fxl-text);font-weight:600}@media (max-width:768px){.fxl-reg__hd,.fxl-reg__row{grid-template-columns:1fr 132px 20px;gap:10px}.fxl-reg__caps,.fxl-reg__hd span:nth-child(2){display:none}}.fxl-dgv{display:grid;gap:10px}.fxl-dgv__row{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:baseline;border:1px solid var(--fxl-line);border-radius:12px;padding:14px 20px}.fxl-dgv__key{font-family:var(--fxl-mono);font-size:12.5px;color:var(--fxl-amber-text)}.fxl-dgv__val{font-size:13.5px;line-height:1.55;color:var(--fxl-dim)}@media (max-width:640px){.fxl-dgv__row{grid-template-columns:1fr;gap:6px}}.fxl-cta{position:relative;overflow:hidden;border-radius:18px;padding:clamp(40px,6vw,64px) clamp(24px,5vw,56px);background:#0a0b0d;border:1px solid rgba(255,255,255,.08);text-align:center}.fxl-cta::before{content:\"\";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at 50% 100%,#000 25%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 100%,#000 25%,transparent 75%);pointer-events:none}.fxl-cta>*{position:relative;z-index:1}.fxl-cta__title{display:block;font-family:var(--fxl-display);font-size:clamp(1.5rem,3vw,2.2rem);font-weight:700;letter-spacing:-.02em;line-height:1.1;color:#f5f5f0;margin-bottom:12px}.fxl-cta__sub{display:block;font-size:14.5px;color:#b9b9b1;max-width:56ch;margin:0 auto 24px}html.fxl-js .rv{opacity:0;transform:translateY(12px);transition:opacity .6s var(--fxl-ease),transform .6s var(--fxl-ease);transition-delay:calc(var(--i, 0)*.06s)}html.fxl-js .rv.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html.fxl-js .rv{opacity:1;transform:none;transition:none}.fxl-rails__state{animation:none}}"}],"page":{"pagePath":"6.x/docs/platform-deep-dive/integrations/flowx-database","slug":"/6.x/docs/platform-deep-dive/integrations/flowx-database","pageMetadata":{"title":"FlowX Database","description":"Store and access structured data across processes and apps","keywords":"flowx database, aggregate, aggregation, aggregation pipeline, MongoDB aggregation, group, sum, count, database operations, collections, NoSQL","owner":"docs","last_reviewed":"2026-10-29T00:00:00.000Z","href":"/6.x/docs/platform-deep-dive/integrations/flowx-database"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Store and access structured data across processes and apps\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,img:`img`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,Card,CardGroup,Check,CodeBlock,Expandable,Frame,Heading,Info,Note,Step,Steps,Tab,Table,Tabs,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Check)_missingMdxReference(`Check`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`what-is-flowx-database`,children:`What is FlowX Database?`}),`\n`,_jsx(Frame,{children:_jsx(`video`,{autoPlay:true,muted:true,loop:true,playsInline:true,controls:true,src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/flowx_db_demo.mp4`})}),`\n`,_jsx(_components.p,{children:`FlowX Database (FlowX DB) is a persistence layer that allows you to store structured data independently of process instances. This enables you to:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Share data between different process instances`}),`\n`,_jsx(_components.li,{children:`Store and retrieve data across multiple processes`}),`\n`,_jsx(_components.li,{children:`Create a persistent data store within the FlowX ecosystem`}),`\n`,_jsx(_components.li,{children:`Access structured data without directly interacting with external systems`}),`\n`]}),`\n`,_jsxs(Info,{children:[_jsxs(_components.p,{children:[`FlowX Database is powered by the `,_jsx(_components.strong,{children:`nosql-db-runner`}),` microservice, which provides MongoDB functionality within the FlowX ecosystem. This service supports both `,_jsx(_components.strong,{children:`native MongoDB`}),` and `,_jsx(_components.strong,{children:`Azure Cosmos DB (MongoDB API)`}),`, enabling you to choose the database backend that best fits your infrastructure needs while maintaining FlowX’s workflow integration capabilities.`]}),_jsxs(_components.p,{children:[`For more information about the `,_jsx(_components.strong,{children:`nosql-db-runner`}),` service and CosmosDB considerations, see the `,_jsx(_components.a,{href:`/6.x/setup-guides/nosql-db-runner`,children:`NoSQL DB Runner documentation`}),`.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`key-concepts`,children:`Key concepts`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Collections`,id:`collections`,children:[_jsx(_components.p,{children:`Collections are containers for storing documents in FlowX Database. Each collection:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Stores documents with similar structure`}),`\n`,_jsx(_components.li,{children:`Has a unique identifier`}),`\n`,_jsx(_components.li,{children:`Can be accessed from different processes`}),`\n`,_jsx(_components.li,{children:`Functions similarly to a database table, but with more flexibility`}),`\n`]}),_jsx(_components.p,{children:`Collections are created and managed through the Data Sources section in the Integration Designer.`})]}),_jsxs(Tab,{title:`Operations`,id:`operations`,children:[_jsx(_components.p,{children:`Operations define the actions you can perform on a collection. FlowX Database supports the full range of essential MongoDB operations:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Operation`}),_jsx(_components.th,{children:`Description`}),_jsx(_components.th,{children:`MongoDB Docs`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`find`})}),_jsx(_components.td,{children:`Retrieve multiple documents based on criteria`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.find/`,children:`MongoDB find()`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`findOne`})}),_jsx(_components.td,{children:`Retrieve a single document`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.findOne/`,children:`MongoDB findOne()`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`insertOne`})}),_jsx(_components.td,{children:`Add a single document`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.insertOne/`,children:`MongoDB insertOne()`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`insertMany`})}),_jsx(_components.td,{children:`Add multiple documents at once`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.insertMany/`,children:`MongoDB insertMany()`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`updateOne`})}),_jsx(_components.td,{children:`Modify a single document`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.updateOne/`,children:`MongoDB updateOne()`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`updateMany`})}),_jsx(_components.td,{children:`Modify multiple documents at once`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.updateMany/`,children:`MongoDB updateMany()`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`deleteOne`})}),_jsx(_components.td,{children:`Remove a single document`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.deleteOne/`,children:`MongoDB deleteOne()`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`deleteMany`})}),_jsx(_components.td,{children:`Remove multiple documents at once`}),_jsx(_components.td,{children:_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.deleteMany/`,children:`MongoDB deleteMany()`})})]})]})]}),_jsx(_components.p,{children:`Each operation is configured with specific parameters that determine how it interacts with the data.`})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsx(_components.p,{children:`Before working with FlowX Database, you should have a solid understanding of:`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`MongoDB Fundamentals`,icon:`database`,children:_jsx(_components.p,{children:`Basic knowledge of MongoDB operations, document structure, and query syntax`})}),_jsx(Card,{title:`JSON Structure`,icon:`code`,children:_jsx(_components.p,{children:`Understanding of JSON payloads and data formatting`})}),_jsx(Card,{title:`CRUD Operations`,icon:`arrows-rotate`,children:_jsx(_components.p,{children:`Familiarity with Create, Read, Update, and Delete operations in database systems`})}),_jsx(Card,{title:`Query Modifiers`,icon:`filter`,children:_jsx(_components.p,{children:`Knowledge of query parameters like filters, sorting, projection, and pagination`})})]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`If you’re new to MongoDB, review the `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/`,children:`MongoDB Manual`}),` before working with FlowX Database operations.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`benefits-of-flowx-database`,children:`Benefits of FlowX Database`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Data Sharing`,icon:`share-nodes`,children:_jsx(_components.p,{children:`Share data between different process instances, enabling more complex workflows and business scenarios`})}),_jsx(Card,{title:`Independence`,icon:`unlock`,children:_jsx(_components.p,{children:`Store data structured according to your needs, independent of external systems`})}),_jsx(Card,{title:`Extended Use Cases`,icon:`expand`,children:_jsx(_components.p,{children:`Enable new business cases that require persistent data across multiple processes`})}),_jsx(Card,{title:`Simplified Integration`,icon:`puzzle-piece`,children:_jsx(_components.p,{children:`Reduce the need for creating custom connectors to external systems for basic data persistence`})}),_jsx(Card,{title:`Native Integration`,icon:`link`,children:_jsx(_components.p,{children:`Integrate with workflows through the existing workflow designer`})}),_jsx(Card,{title:`Complete CRUD Operations`,icon:`database`,children:_jsx(_components.p,{children:`Perform all standard Create, Read, Update, and Delete operations on your data`})}),_jsx(Card,{title:`Bulk Operations`,icon:`layer-group`,children:_jsx(_components.p,{children:`Handle multiple documents efficiently with insertMany, updateMany, and deleteMany operations`})}),_jsx(Card,{title:`Flexible Querying`,icon:`filter`,children:_jsx(_components.p,{children:`Use MongoDB’s query syntax to filter, sort, and project your data`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`how-to-use-flowx-database`,children:`How to use FlowX Database`}),`\n`,_jsx(Heading,{level:`3`,id:`creating-a-collection`,children:`Creating a collection`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Access Data Sources`,children:[_jsx(_components.p,{children:`Navigate to the ‘Integrations’ section in the left sidebar of FlowX Designer, then click on ‘Data Sources’.`}),_jsx(Frame,{caption:`Accessing Data Sources in the navigation menu`,children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/470/flowx_db.png`,alt:`Accessing Data Sources in the navigation menu`})})})]}),_jsxs(Step,{title:`Add a new Data Source`,children:[_jsx(_components.p,{children:`Click the ”+” button to add a new Data Source. In the “Add Data Source” dialog, select “FlowX Database” from the dropdown list.`}),_jsx(Frame,{caption:`Adding a new FlowX Database data source`,children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/470/flowx_db_select.png`,alt:`Adding a new FlowX Database data source`})})})]}),_jsxs(Step,{title:`Configure the collection`,children:[_jsx(_components.p,{children:`Provide a name and description for your collection. The name will be used to identify this database collection in your workflows.`}),_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Data Model Required`}),`: You must have a data model defined before creating a FlowX Database collection. The data model becomes the schema for your database collection and defines the structure of documents that will be stored.`]})}),_jsx(Frame,{caption:`Configuring the collection`,children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/fldb1.png`,alt:`Configuring the collection`})})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Schema Definition`}),`: Define the schema for your collection (the selected schema enhances auto-completion but does not enforce validation during insert or update)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Partitioning Key`}),`: The attribute used to partition data in your collection. By default, this is set to the `,_jsx(_components.code,{children:`id`}),` attribute, but you can specify a different field based on your data model.`]}),`\n`]})]}),_jsx(Step,{title:`Create the collection`,children:_jsx(_components.p,{children:`Click “Create” to save the collection in FlowX Database. Your new collection will appear in the Data Sources list with the type “FlowX Database”.`})})]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Each FlowX Database data source represents a collection in the underlying MongoDB database. When you create a new data source with the FlowX Database type, you’re essentially creating a new collection where your documents will be stored.`})}),`\n`,_jsx(Heading,{level:`3`,id:`viewing-collection-data`,children:`Viewing collection data`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Navigate to collection`,children:_jsx(_components.p,{children:`Go to the collection you want to view in the ‘Data Sources’ section.`})}),_jsx(Step,{title:`Access Documents tab`,children:_jsx(_components.p,{children:`Click the ‘Documents’ section within the collection.`})}),_jsxs(Step,{title:`Browse documents`,children:[_jsx(_components.p,{children:`You’ll see a listing of currently saved documents in the collection.`}),_jsx(Frame,{caption:`Viewing documents in a FlowX Database collection`,children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/fldb2.png`,alt:`Viewing documents in a FlowX Database collection`})})})]}),_jsxs(Step,{title:`Search and filter`,children:[_jsx(_components.p,{children:`Use the search functionality to find specific documents in the collection. You can add queries to filter documents, sort them, and use projections to choose what content from each entry you want to see.`}),_jsx(Frame,{caption:`Searching and filtering documents in a FlowX Database collection`,children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/fldb3.png`,alt:`Searching and filtering documents in a FlowX Database collection`})})}),_jsx(Info,{children:_jsx(_components.p,{children:`FlowX Database currently relies on MongoDB’s native sorting behavior for query results.\nAll sorting is performed using MongoDB’s default binary comparison rules.`})})]}),_jsx(Step,{title:`Delete a document`,children:_jsxs(_components.p,{children:[`Hover over a document row and click the trash icon, then confirm with `,_jsx(_components.strong,{children:`Delete`}),`. The document is permanently removed from the collection and can’t be restored. You delete one document at a time, and you need edit rights on the data source.`]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`managing-collection-settings`,children:`Managing collection settings`}),`\n`,_jsxs(_components.p,{children:[`Each FlowX Database collection has a `,_jsx(_components.strong,{children:`Settings`}),` tab where you can configure performance optimizations:`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Access Settings tab`,children:_jsx(_components.p,{children:`Navigate to your collection and click on the ‘Settings’ tab.`})}),_jsxs(Step,{title:`Define indexes`,children:[_jsx(_components.p,{children:`Create indexes for your collection to improve query performance. Indexes are particularly important for large collections as they significantly reduce query execution time.`}),_jsx(Tip,{children:_jsx(_components.p,{children:`Create indexes on fields that you frequently use in filter conditions, sort operations, or queries to optimize performance.`})}),_jsx(Frame,{caption:`Defining indexes for a FlowX Database collection`,children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/fldb4.png`,alt:`Defining indexes for a FlowX Database collection`})})})]})]}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`Defining indexes in the Settings tab saves them as `,_jsx(_components.strong,{children:`configuration only`}),` — they are not applied to the actual MongoDB collection immediately. To apply indexes, you must go to the `,_jsx(_components.strong,{children:`Runtime`}),` view of your project or library, open the `,_jsx(_components.strong,{children:`Builds`}),` section, and select `,_jsx(_components.strong,{children:`Apply Indexes`}),` from the build’s context menu. Only one build per project or library can have indexes applied at a time. Applying indexes on a new build will automatically replace any previously applied indexes that differ.`]}),_jsxs(_components.p,{children:[`For more details, see `,_jsx(_components.a,{href:`/6.x/docs/projects/runtime/builds#apply-indexes`,children:`Builds`}),`.`]})]}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`For large collections with thousands of documents, proper indexing is crucial for maintaining good query performance. Consider indexing frequently queried fields before your collection grows large.`})}),`\n`,_jsx(Heading,{level:`3`,id:`how-do-i-make-an-index-unique`,children:`How do I make an index unique?`}),`\n`,_jsxs(_components.p,{children:[`Toggle `,_jsx(_components.strong,{children:`Enforce unique values`}),` when you add an index to reject any document that repeats a value already stored on the indexed attributes. On a single attribute, no two documents can hold the same value. On a compound index, the combination of attributes must be unique, not each attribute on its own.`]}),`\n`,_jsxs(_components.p,{children:[`When `,_jsx(_components.strong,{children:`Enforce unique values`}),` is on, a second toggle controls empty values:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Enforce only when the value is filled in`}),` (single attribute) or `,_jsx(_components.strong,{children:`Enforce only when the whole key is filled in`}),` (compound index) `,_jsx(_components.strong,{children:`ON`}),`: documents that leave the attribute, or any attribute of the key, empty are exempt. Duplicates among documents that do have values are still rejected.`]}),`\n`,_jsxs(_components.li,{children:[`The same toggle `,_jsx(_components.strong,{children:`OFF`}),`: empty attributes count as values. Only one document in the collection can leave a single indexed attribute empty, and on a compound index two documents conflict when their keys match, blanks included.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Keep these rules in mind:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Values are matched exactly, so `,_jsx(_components.code,{children:`Ana@x.com`}),` and `,_jsx(_components.code,{children:`ana@x.com`}),` are two different values. Changing this later means dropping and recreating the index.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`_id`}),` is always unique, so it can’t be the only attribute of a unique index, and a single index can’t cover two array attributes.`]}),`\n`,_jsxs(_components.li,{children:[`If a new unique index adds nothing to an existing one, FlowX Designer asks you to confirm with `,_jsx(_components.strong,{children:`Create anyway`}),`.`]}),`\n`,_jsx(_components.li,{children:`If the collection sets a partitioning key and is sharded, the unique index must start with that key.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Like any index, a unique index is only created in the database when you run `,_jsx(_components.strong,{children:`Apply Indexes`}),` on a build. That is when FlowX.AI checks for existing duplicates: if the environment’s collection already holds duplicate values, the `,_jsx(_components.strong,{children:`Apply Indexes`}),` window lists sample values and keeps `,_jsx(_components.strong,{children:`Apply`}),` unavailable. Remove the duplicates from that environment’s collection (for example from the `,_jsx(_components.strong,{children:`Documents`}),` tab), then click `,_jsx(_components.strong,{children:`Re-check`}),`. See `,_jsx(_components.a,{href:`/6.x/docs/projects/runtime/builds#apply-indexes`,children:`Apply indexes`}),`.`]}),`\n`,_jsx(_components.p,{children:`After the index is applied, an insert or update that would create a duplicate fails.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`3`,id:`creating-database-operations`,children:`Creating database operations`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Create operation`,id:`create-operation`,children:_jsxs(Steps,{children:[_jsx(Step,{title:`Access operations list`,children:_jsx(_components.p,{children:`Navigate to your FlowX Database collection in the Data Sources section.`})}),_jsxs(Step,{title:`Create new operation`,children:[_jsx(_components.p,{children:`Click the ”+” button to create a new operation.`}),_jsx(Frame,{caption:`Creating a new operation for a FlowX Database collection`,children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/470/new_operation.png`,alt:`Creating a new operation for a FlowX Database collection`})})})]}),_jsxs(Step,{title:`Select operation type`,children:[_jsx(_components.p,{children:`Choose the operation type from the dropdown (find, findOne, insertOne, insertMany, etc.).`}),_jsx(Frame,{caption:`Selecting the operation type`,children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/470/operation_type_selection.png`,alt:`Selecting the operation type`})})})]}),_jsx(Step,{title:`Name the operation`,children:_jsx(_components.p,{children:`Give your operation a meaningful name and description that indicates its purpose.`})}),_jsxs(Step,{title:`Define the operation parameters`,children:[_jsx(_components.p,{children:`Configure the parameters for your operation based on its type. For example, for a find operation:`}),_jsx(Frame,{caption:`Configuring operation parameters`,children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/fldb5.png`,alt:`Configuring operation parameters`})})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Filter`}),`: Define the criteria to match documents`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Projection`}),`: Select which fields to include in the results`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Sort`}),`: Specify the sorting order`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Skip`}),`: For find operations, specify the number of documents to skip`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Limit`}),`: Set the maximum number of documents to return`]}),`\n`]}),_jsxs(Info,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Parameter Syntax`}),`: When defining operation parameters, remember:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Parameters defined in the operation`}),` are referenced using `,_jsx(_components.code,{children:\"${parameterName}\"}),` syntax`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Database field names`}),` must be in quotes (e.g., `,_jsx(_components.code,{children:`\"firstName\"`}),`, `,_jsx(_components.code,{children:`\"customerId\"`}),`)`]}),`\n`,_jsx(_components.li,{children:`Parameters don’t need to match your data model exactly - they’re placeholders that get replaced with actual values`}),`\n`,_jsx(_components.li,{children:`Field names in quotes must match exactly what’s stored in the database (same as your data model)`}),`\n`]})]})]}),_jsxs(Step,{title:`Test the operation`,children:[_jsx(_components.p,{children:`Use the test functionality to verify your operation works correctly.`}),_jsx(Frame,{caption:`Testing an operation`,children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/5.x/fldb6.png`,alt:`Testing an operation`})})}),_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Testing Delete Operations`}),`: Be extremely careful when testing delete operations (`,_jsx(_components.code,{children:`deleteOne`}),` and `,_jsx(_components.code,{children:`deleteMany`}),`) as they will actually remove documents from your collection. Always use test data or ensure you have backups before testing deletion operations in collections with important data.`]})})]}),_jsx(Step,{title:`Save the operation`,children:_jsx(_components.p,{children:`Click “Save” to add the operation to your collection. It will now be available for use in workflows.`})})]})}),_jsx(Tab,{title:`Update operation`,id:`update-operation`,children:_jsxs(Steps,{children:[_jsx(Step,{title:`Select operation`,children:_jsx(_components.p,{children:`From the list of operations, select the one you want to update.`})}),_jsx(Step,{title:`Make changes`,children:_jsx(_components.p,{children:`Update the operation name, description, or parameters as needed.`})}),_jsx(Step,{title:`Test updated operation`,children:_jsx(_components.p,{children:`Test the updated operation to ensure it works as expected.`})}),_jsx(Step,{title:`Save changes`,children:_jsx(_components.p,{children:`Save your changes to apply them to the operation.`})})]})}),_jsx(Tab,{title:`Delete operation`,id:`delete-operation`,children:_jsxs(Steps,{children:[_jsx(Step,{title:`Select operation`,children:_jsx(_components.p,{children:`From the list of operations, select the one you want to delete.`})}),_jsx(Step,{title:`Delete operation`,children:_jsx(_components.p,{children:`Click the delete button and confirm the deletion when prompted.`})}),_jsx(Step,{title:`Verify removal`,children:_jsx(_components.p,{children:`Verify that the operation has been removed from the collection.`})})]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`visual-query-builder`,children:`Visual query builder`}),`\n`,_jsx(_components.p,{children:`Instead of writing raw MongoDB query syntax, you can use the visual query builder to define filters, updates, projections, and sorting through a guided interface that understands your collection’s schema.`}),`\n`,_jsxs(_components.p,{children:[`Each operation type has a tailored builder experience. You can switch between `,_jsx(_components.strong,{children:`Visual`}),` and `,_jsx(_components.strong,{children:`Script`}),` mode at any time with the two icon buttons above the editor: the brick wall icon opens the visual builder, and the curly braces icon opens the JSON query (Script mode). The buttons have no text labels. The two modes work independently — saving in one mode sets that as the active query for the operation.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Switching modes does not sync changes between them. A warning message informs you that saving in the current mode will set it as the final query for the operation.`})}),`\n`,_jsx(Heading,{level:`4`,id:`condition-rows`,children:`Condition rows`}),`\n`,_jsxs(_components.p,{children:[`The core building block of the query builder is the `,_jsx(_components.strong,{children:`condition row`}),`, used in filter sections across all operation types:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Element`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Field dropdown`})}),_jsxs(_components.td,{children:[`Pick a field from the collection schema. Supports nested paths (e.g., `,_jsx(_components.code,{children:`address.city`}),`). Shows a data type badge for each field.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Operator dropdown`})}),_jsx(_components.td,{children:`Type-aware operators that change based on the selected field’s data type (see table below).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Value input`})}),_jsxs(_components.td,{children:[`Enter a static value or switch to dynamic mode using `,_jsx(_components.code,{children:\"${paramName}\"}),` syntax. Input type adapts to the field type (text, number, date picker, boolean toggle, enum dropdown).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remove button`})}),_jsx(_components.td,{children:`Delete the condition row.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Multiple condition rows can be combined with `,_jsx(_components.strong,{children:`AND`}),` or `,_jsx(_components.strong,{children:`OR`}),` logic using a dropdown selector. AND is the default.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Each condition row is matched on its own. Two conditions on fields inside the same array of objects, such as `,_jsx(_components.code,{children:`items.sku`}),` and `,_jsx(_components.code,{children:`items.qty`}),`, can be met by `,_jsx(_components.strong,{children:`different`}),` elements of the array. When both must hold on the same element, write the filter in Script mode with `,_jsx(_components.code,{children:`$elemMatch`}),`. See `,_jsx(_components.a,{href:`#mongodb-operations-supported`,children:`Filter on nested fields and arrays of objects`}),`.`]})}),`\n`,_jsx(Heading,{level:`4`,id:`type-aware-operators`,children:`Type-aware operators`}),`\n`,_jsx(_components.p,{children:`The available operators change based on the selected field’s data type:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field type`}),_jsx(_components.th,{children:`Available operators`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`String`})}),_jsx(_components.td,{children:`equals, not equals, contains, starts with, ends with, matches regex, in, not in, exists, is null`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Number`})}),_jsx(_components.td,{children:`equals, not equals, greater than, greater or equal, less than, less or equal, in, exists, is null`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Boolean`})}),_jsx(_components.td,{children:`equals, exists`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Date/Time`})}),_jsx(_components.td,{children:`equals, before, after, exists, is null`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Enum`})}),_jsx(_components.td,{children:`equals, not equals, in, not in, exists`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Object`})}),_jsx(_components.td,{children:`exists, not exists`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Array`})}),_jsx(_components.td,{children:`contains, size equals, size greater than, exists, intersects`})]})]})]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Fields not in the schema can also be used — select a custom key and a data type selector appears so you can set the appropriate operators.`})}),`\n`,_jsx(Heading,{level:`4`,id:`intersects-on-array-fields`,children:`Intersects on array fields`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`intersects`}),` matches documents whose array field shares at least one value with the list you supply. The value is either a literal list of strings or numbers, or a single `,_jsx(_components.code,{children:\"${param}\"}),` that resolves to a list at runtime. A parameter cannot be placed inside a literal list. Documents where the field is not an array never match.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Conditions that use `,_jsx(_components.strong,{children:`intersects`}),`, like aggregation stages, are not included in the version 3 export format. Use the current export format when moving operations that rely on them.`]})}),`\n`,_jsx(Heading,{level:`4`,id:`builder-sections-by-operation-type`,children:`Builder sections by operation type`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Find / Find One`,id:`find-%2F-find-one`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Filter`}),`: Condition rows to define which documents to match`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Sort`}),`: Add sort fields with ASC/DESC direction`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Projection`}),`: Select fields to include or exclude from results`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pagination`}),` (find only): Set `,_jsx(_components.strong,{children:`Limit`}),` (max documents) and `,_jsx(_components.strong,{children:`Skip`}),` (offset) values`]}),`\n`]})}),_jsx(Tab,{title:`Insert / Insert Many`,id:`insert-%2F-insert-many`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Document fields`}),`: Auto-populated from the collection schema with appropriate input types per field`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`_id`}),` is auto-included with an “auto-generated” indicator`]}),`\n`,_jsxs(_components.li,{children:[`Array fields have an `,_jsx(_components.strong,{children:`+ Add item`}),` button`]}),`\n`,_jsxs(_components.li,{children:[`Each field supports static values or `,_jsx(_components.code,{children:\"${paramName}\"}),` dynamic references`]}),`\n`]})}),_jsxs(Tab,{title:`Update / Update Many`,id:`update-%2F-update-many`,children:[_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Filter section`}),`: Same condition row builder as Find — defines which documents to update`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Update section`}),`: Define what to change in matching documents:`]}),`\n`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Update operator`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`$set`})}),_jsx(_components.td,{children:`Replace field value`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`$unset`})}),_jsx(_components.td,{children:`Remove field`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`$inc`})}),_jsx(_components.td,{children:`Increment number`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`$push`})}),_jsx(_components.td,{children:`Add to array`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`$pull`})}),_jsx(_components.td,{children:`Remove from array`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`$addToSet`})}),_jsx(_components.td,{children:`Add unique value to array`})]})]})]})]}),_jsxs(Tab,{title:`Delete / Delete Many`,id:`delete-%2F-delete-many`,children:[_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Filter section`}),`: Same condition row builder as Find — defines which documents to delete`]}),`\n`]}),_jsx(Warning,{children:_jsx(_components.p,{children:`A warning banner is always displayed: “This operation will permanently delete matching documents.”`})})]})]}),`\n`,_jsx(Heading,{level:`4`,id:`testing-operations`,children:`Testing operations`}),`\n`,_jsx(_components.p,{children:`The existing 3-panel test modal is enhanced with the visual builder:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Left panel`}),`: Input parameters — fill in test values for `,_jsx(_components.code,{children:\"${paramName}\"}),` references`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Middle panel`}),`: Shows the visual builder view of the query`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Right panel`}),`: Results displayed in tabular format with schema-derived column headers`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`For insert operations, a `,_jsx(_components.strong,{children:`Quick Find`}),` button appears after a successful test, letting you immediately verify the inserted document.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`3`,id:`aggregation-pipelines`,children:`Aggregation pipelines`}),`\n`,_jsxs(_components.p,{children:[`Database operations support MongoDB `,_jsx(_components.strong,{children:`aggregation pipelines`}),`, so you can group, join, reshape, and compute across documents beyond what a single query allows. A pipeline is built as an ordered list of `,_jsx(_components.strong,{children:`stages`}),` — such as `,_jsx(_components.strong,{children:`Filter`}),`, `,_jsx(_components.strong,{children:`Sort`}),`, `,_jsx(_components.strong,{children:`Projection`}),`, and `,_jsx(_components.strong,{children:`Limit`}),` — each configured in the visual builder and applied in sequence to the collection. Use aggregation when you need computed results (counts, sums, grouped summaries) rather than raw documents.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`working-with-flowx-database-in-workflows`,children:`Working with FlowX Database in workflows`}),`\n`,_jsx(Frame,{caption:`Database node in a workflow`,children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/470/database_node_workflow.png`,alt:`Database node in a workflow`})})}),`\n`,_jsx(_components.p,{children:`FlowX Database integrates directly with the workflow designer through the “Data Source” node type:`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Add Data Source node`,children:_jsx(_components.p,{children:`In your workflow, add a new node and select the ‘DATA_SOURCE’ type.`})}),_jsxs(Step,{title:`Configure data source`,children:[_jsx(_components.p,{children:`In the node properties panel:`}),_jsx(Frame,{caption:`Data Source node configuration`,children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/470/data_source_node_config.png`,alt:`Data Source node configuration`})})}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Choose “FlowX Database” as the system type from the dropdown`}),`\n`,_jsx(_components.li,{children:`Select your collection from the available options`}),`\n`,_jsx(_components.li,{children:`Choose the operation you want to perform (find, findOne, insertOne, insertMany, updateOne, updateMany, deleteOne, deleteMany)`}),`\n`]})]}),_jsxs(Step,{title:`Configure operation parameters`,children:[_jsx(_components.p,{children:`Set the parameters for your selected operation. The available parameters will depend on the operation type:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`filter`}),` - For find operations, define the criteria to match documents`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`sort`}),` - For find operations, specify the sorting order for results`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`document`}),` - For insert operations, define the document to insert`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`update`}),` - For update operations, define the document to update`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`delete`}),` - For delete operations, define the criteria to match documents`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`skip`}),` - For find operations, specify the number of documents to skip`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`limit`}),` - For find operations, specify the maximum number of documents to return`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`projection`}),` - For find operations, specify the fields to include or exclude in the results`]}),`\n`]}),_jsx(Frame,{caption:`Configuring operation parameters`,children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/470/config_operation_params.png`,alt:`Configuring operation parameters`})})}),_jsx(_components.p,{children:`You can use static JSON or reference process variables using the expression syntax.`})]}),_jsx(Step,{title:`Set response key`,children:_jsx(_components.p,{children:`Specify where the operation result should be stored in the process instance. This makes the data available to subsequent nodes in your workflow.`})})]}),`\n`,_jsxs(Accordion,{title:`Example: Using filter parameter in find operation`,id:`example-using-filter-parameter-in-find-operation`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"age\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"$gt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`30`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"active\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(_components.p,{children:`This filter will return all documents where the age is greater than 30 and the status is “active”.`}),_jsx(Info,{children:_jsxs(_components.p,{children:[`For more information about MongoDB comparison operators like $gt, see `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/operator/query-comparison/`,children:`Comparison Query Operators`}),`.`]})})]}),`\n`,_jsxs(Accordion,{title:`Example: Using process variables in parameters`,id:`example-using-process-variables-in-parameters`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.id}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(_components.p,{children:`This filter uses a value from the process instance to find documents matching a specific customer ID.`}),_jsx(Info,{children:_jsxs(_components.p,{children:[`Learn more about MongoDB query syntax in the `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/tutorial/query-documents/`,children:`Query Documents Tutorial`}),`.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`mongodb-operations-supported`,children:`MongoDB operations supported`}),`\n`,_jsxs(_components.p,{children:[`FlowX Database uses MongoDB’s query capabilities through the `,_jsx(_components.strong,{children:`nosql-db-runner`}),` service, providing pure MongoDB functionality. For detailed information about MongoDB query operators, filters, and syntax, refer to the `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/operator/query/`,children:`MongoDB Query and Projection Operators documentation`}),`.`]}),`\n`,_jsx(_components.p,{children:`The following MongoDB operations are supported in FlowX Database. Each tab includes practical examples that you can use as a starting point for your own operations.`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`find`,id:`find`,\"data-child-tab-ids\":`[\"filter\",\"sort\",\"projection\",\"skip\",\"limit\",\"filter-2\",\"sort-2\",\"projection-2\",\"limit-2\",\"filter-3\"]`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Parameters:`})}),_jsxs(_components.p,{children:[`For complete documentation on find operations and query syntax, see `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.find/`,children:`MongoDB db.collection.find()`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`filter`}),` (document, optional): Criteria to match documents. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/tutorial/query-documents/`,children:`Query Filter Documents`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`sort`}),` (document, optional): Document specifying the sorting order. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/cursor.sort/`,children:`Sort Query Results`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`skip`}),` (integer, optional): Number of documents to skip. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/cursor.skip/`,children:`Limit Query Results`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`limit`}),` (integer, optional): Maximum number of documents to return. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/cursor.limit/`,children:`Limit Query Results`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`projection`}),` (document, optional): Fields to include or exclude. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/tutorial/project-fields-from-query-results/`,children:`Project Fields`})]}),`\n`]}),_jsxs(Accordion,{title:`Example: List active customers`,id:`example-list-active-customers`,children:[_jsx(_components.p,{children:`This example finds all active customers, sorts them by registration date (newest first), limits to 10 results, and returns only specific fields.`}),_jsx(_components.p,{children:`Operation name: listActiveCustomers`}),_jsxs(Tabs,{children:[_jsx(Tab,{title:`filter`,id:`filter`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"active\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`sort`,id:`sort`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerSince\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`-1`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`projection`,id:`projection`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"firstName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`skip`,id:`skip`,children:_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`0`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})}),_jsx(Tab,{title:`limit`,id:`limit`,children:_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`10`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})})]}),_jsx(_components.p,{children:`This operation will return up to 10 active customers, with the most recently registered customers first.`})]}),_jsxs(Accordion,{title:`Example: Find products by category and price`,id:`example-find-products-by-category-and-price`,children:[_jsx(_components.p,{children:`This example finds products in a specific category within a price range.`}),_jsx(_components.p,{children:`Operation name: findAffordableElectronics`}),_jsxs(Tabs,{children:[_jsx(Tab,{title:`filter`,id:`filter-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"category\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"electronics\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"price\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"$gte\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`10`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"$lte\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`100`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`sort`,id:`sort-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"price\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`projection`,id:`projection-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"productName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"price\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"rating\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"inStock\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`limit`,id:`limit-2`,children:_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`20`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})})]}),_jsxs(_components.p,{children:[`This operation will return up to 20 electronics products with prices between `,`$10 and $`,`100, sorted from lowest to highest price.`]})]}),_jsxs(Accordion,{title:`Example: Filter on nested fields and arrays of objects`,id:`example-filter-on-nested-fields-and-arrays-of-objects`,children:[_jsxs(_components.p,{children:[`In Script mode, the filter goes to MongoDB unchanged, so standard MongoDB filter syntax works. Use dot notation for a field inside an object, and `,_jsx(_components.code,{children:`$elemMatch`}),` when several conditions must hold on the same element of an array.`]}),_jsx(_components.p,{children:`Operation name: findClujOrdersWithBulkItem`}),_jsx(Tabs,{children:_jsx(Tab,{title:`filter`,id:`filter-3`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"address.city\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Cluj\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"items\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"$elemMatch\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"sku\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"A1\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"qty\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"$gt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` } } }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})}),_jsxs(_components.p,{children:[`This operation returns orders shipped to Cluj that contain at least one line with SKU `,_jsx(_components.code,{children:`A1`}),` `,_jsx(_components.strong,{children:`and`}),` a quantity above 2 on that same line. Without `,_jsx(_components.code,{children:`$elemMatch`}),`, `,_jsx(_components.code,{children:`{\"items.sku\": \"A1\", \"items.qty\": {\"$gt\": 2}}`}),` would also match an order where one line has SKU `,_jsx(_components.code,{children:`A1`}),` and a different line has a quantity above 2.`]})]})]}),_jsxs(Tab,{title:`findOne`,id:`findone`,\"data-child-tab-ids\":`[\"filter-4\",\"projection-3\",\"filter-5\",\"sort-3\",\"projection-4\"]`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Parameters:`})}),_jsxs(_components.p,{children:[`For complete documentation on findOne operations, see `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.findOne/`,children:`MongoDB db.collection.findOne()`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`filter`}),` (document, optional): Criteria to match the document. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/tutorial/query-documents/`,children:`Query Filter Documents`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`projection`}),` (document, optional): Fields to include or exclude. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/tutorial/project-fields-from-query-results/`,children:`Project Fields`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`sort`}),` (document, optional): Document specifying the sorting order. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/cursor.sort/`,children:`Sort Query Results`})]}),`\n`]}),_jsxs(Accordion,{title:`Example: Find customer by ID`,id:`example-find-customer-by-id`,children:[_jsx(_components.p,{children:`This example retrieves a single customer by their unique customer ID.`}),_jsx(_components.p,{children:`Operation name: findCustomerById`}),_jsxs(Tabs,{children:[_jsx(Tab,{title:`filter`,id:`filter-4`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerId}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`projection`,id:`projection-3`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"firstName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"phone\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerSince\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"address\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})]}),_jsx(_components.p,{children:`This operation uses a process variable for the customer ID and returns specific customer fields. Since findOne only returns one document, sort is usually unnecessary unless you need the first document matching certain criteria.`})]}),_jsxs(Accordion,{title:`Example: Find latest order`,id:`example-find-latest-order`,children:[_jsx(_components.p,{children:`This example finds the most recent order for a customer.`}),_jsx(_components.p,{children:`Operation name: findLatestOrder`}),_jsxs(Tabs,{children:[_jsx(Tab,{title:`filter`,id:`filter-5`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerId}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`sort`,id:`sort-3`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"orderDate\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`-1`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`projection`,id:`projection-4`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"orderId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"orderDate\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"totalAmount\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"items\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})]}),_jsx(_components.p,{children:`This operation will find the most recent order for a specific customer by sorting by orderDate in descending order and returning only the first match.`})]})]}),_jsxs(Tab,{title:`insertOne`,id:`insertone`,\"data-child-tab-ids\":`[\"document\",\"document-2\"]`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Parameters:`})}),_jsxs(_components.p,{children:[`For complete documentation on insertOne operations, see `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.insertOne/`,children:`MongoDB db.collection.insertOne()`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`document`}),` (document, required): The document to insert. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/tutorial/insert-documents/`,children:`Insert Documents`})]}),`\n`]}),_jsxs(Accordion,{title:`Example: Create a new customer`,id:`example-create-a-new-customer`,children:[_jsx(_components.p,{children:`This example inserts a new customer record using data from a process instance.`}),_jsx(_components.p,{children:`Operation name: createCustomer`}),_jsx(Tabs,{children:_jsx(Tab,{title:`document`,id:`document`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`15`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.id}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"firstName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.firstName}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.lastName}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.email}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"phone\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.phone}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"active\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerSince\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.registrationDate}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"address\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"street\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.address.street}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"city\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.address.city}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"state\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.address.state}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"zipCode\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.address.zipCode}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})}),_jsx(_components.p,{children:`This operation creates a new customer document with nested address data, using values from the process instance.`})]}),_jsxs(Accordion,{title:`Example: Log a system event`,id:`example-log-a-system-event`,children:[_jsx(_components.p,{children:`This example logs a system event with static and dynamic data.`}),_jsx(_components.p,{children:`Operation name: logSystemEvent`}),_jsx(Tabs,{children:_jsx(Tab,{title:`document`,id:`document-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"eventType\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"user_action\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"action\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.actionType}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"timestamp\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.currentDateTime}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"userId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.userId}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"details\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.actionDetails}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"source\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"workflow\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"processId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.id}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})}),_jsx(_components.p,{children:`This operation creates an event log entry with information about user actions in the system.`})]})]}),_jsxs(Tab,{title:`insertMany`,id:`insertmany`,\"data-child-tab-ids\":`[\"documents\",\"documents-2\"]`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Parameters:`})}),_jsxs(_components.p,{children:[`For complete documentation on insertMany operations, see `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.insertMany/`,children:`MongoDB db.collection.insertMany()`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`documents`}),` (array, required): Array of documents to insert. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/tutorial/insert-documents/`,children:`Insert Documents`})]}),`\n`]}),_jsxs(Accordion,{title:`Example: Import multiple customers`,id:`example-import-multiple-customers`,children:[_jsx(_components.p,{children:`This example inserts multiple customer records at once, typically from an imported data source.`}),_jsx(_components.p,{children:`Operation name: importCustomers`}),_jsx(Tabs,{children:_jsx(Tab,{title:`documents`,id:`documents`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`26`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`26`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"CUST001\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"firstName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"John\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Doe\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"john.doe@example.com\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"active\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerSince\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2025-01-15\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"CUST002\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"firstName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Jane\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Smith\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"jane.smith@example.com\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"active\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerSince\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2025-01-20\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"CUST003\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"firstName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Robert\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Johnson\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"robert.j@example.com\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"inactive\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerSince\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2024-11-05\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`]`})}),`\n`]})})})})}),_jsxs(_components.p,{children:[`This operation inserts multiple customer records at once. In a real scenario, you would typically reference a process variable containing the array: `,_jsx(_components.code,{children:`{processInstance.importedCustomers}`})]})]}),_jsxs(Accordion,{title:`Example: Create order items`,id:`example-create-order-items`,children:[_jsx(_components.p,{children:`This example creates multiple order items for a single order.`}),_jsx(_components.p,{children:`Operation name: createOrderItems`}),_jsx(Tabs,{children:_jsx(Tab,{title:`documents`,id:`documents-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`16`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`[`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"orderId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.orderId}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"productId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.items[0].productId}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"quantity\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.items[0].quantity}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"unitPrice\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.items[0].price}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"subtotal\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.items[0].subtotal}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"orderId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.orderId}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"productId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.items[1].productId}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"quantity\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.items[1].quantity}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"unitPrice\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.items[1].price}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"subtotal\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.items[1].subtotal}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`]`})}),`\n`]})})})})}),_jsxs(_components.p,{children:[`This operation creates multiple order item records for a single order. In practice, you would use `,_jsx(_components.code,{children:`{processInstance.items}`}),` directly if your process data model matches the database structure.`]})]})]}),_jsxs(Tab,{title:`updateOne`,id:`updateone`,\"data-child-tab-ids\":`[\"filter-6\",\"update\",\"filter-7\",\"update-2\"]`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Parameters:`})}),_jsxs(_components.p,{children:[`For complete documentation on updateOne operations, see `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.updateOne/`,children:`MongoDB db.collection.updateOne()`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`filter`}),` (document, required): Criteria to match the document to update. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/tutorial/query-documents/`,children:`Query Filter Documents`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`update`}),` (document, required): Update operations to apply. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/mql/update/`,children:`Update Operators`})]}),`\n`]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Important Update Behavior`}),`: When using update operations without the `,_jsx(_components.code,{children:`$set`}),` operator, the entire document will be replaced with the new data. This means any fields not included in your update payload will be removed from the document. Always use the `,_jsx(_components.code,{children:`$set`}),` operator to update specific fields while preserving others.`]})}),_jsxs(Accordion,{title:`Example: Update customer status`,id:`example-update-customer-status`,children:[_jsx(_components.p,{children:`This example updates a customer’s status and records when the change occurred.`}),_jsx(_components.p,{children:`Operation name: updateCustomerStatus`}),_jsxs(Tabs,{children:[_jsx(Tab,{title:`filter`,id:`filter-6`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerId}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`update`,id:`update`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"$set\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.newStatus}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastUpdated\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.currentDate}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"statusReason\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.statusChangeReason}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})]}),_jsx(_components.p,{children:`This operation updates a customer’s status along with the reason and timestamp.`})]}),_jsxs(Accordion,{title:`Example: Update order with tracking information`,id:`example-update-order-with-tracking-information`,children:[_jsx(_components.p,{children:`This example updates an order with shipping details and increments a counter.`}),_jsx(_components.p,{children:`Operation name: updateOrderShipping`}),_jsxs(Tabs,{children:[_jsx(Tab,{title:`filter`,id:`filter-7`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"orderId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.orderId}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`update`,id:`update-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"$set\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"shipped\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"shippingDetails\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"carrier\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.shippingData.carrier}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"trackingNumber\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.shippingData.trackingNumber}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"estimatedDelivery\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.shippingData.estimatedDelivery}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastUpdated\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.currentDateTime}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"$inc\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"statusUpdates\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})]}),_jsx(_components.p,{children:`This operation updates an order with shipping information, sets the status to “shipped”, and increments a counter tracking the number of status updates.`})]})]}),_jsxs(Tab,{title:`updateMany`,id:`updatemany`,\"data-child-tab-ids\":`[\"filter-8\",\"update-3\",\"filter-9\",\"update-4\",\"filter-10\",\"update-5\"]`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Parameters:`})}),_jsxs(_components.p,{children:[`For complete documentation on updateMany operations, see `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.updateMany/`,children:`MongoDB db.collection.updateMany()`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`filter`}),` (document, required): Criteria to match documents to update. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/tutorial/query-documents/`,children:`Query Filter Documents`}),`. An empty filter (`,_jsx(_components.code,{children:`{}`}),`) is rejected. To match every document on purpose, pass `,_jsx(_components.code,{children:`{\"_id\": {\"$exists\": true}}`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`update`}),` (document, required): Update operations to apply. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/mql/update/`,children:`Update Operators`})]}),`\n`]}),_jsxs(Warning,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Important Update Behavior`}),`: When using update operations without the `,_jsx(_components.code,{children:`$set`}),` operator, the entire document will be replaced with the new data. This means any fields not included in your update payload will be removed from the document.`]}),_jsxs(_components.p,{children:[`For example, if a document has `,_jsx(_components.code,{children:`id`}),`, `,_jsx(_components.code,{children:`name`}),`, and `,_jsx(_components.code,{children:`email`}),`, and you update only the `,_jsx(_components.code,{children:`name`}),` field without using `,_jsx(_components.code,{children:`$set`}),`, the `,_jsx(_components.code,{children:`email`}),` field will be deleted. Always use the `,_jsx(_components.code,{children:`$set`}),` operator to update specific fields while preserving others.`]})]}),_jsxs(Accordion,{title:`Example: Deactivate inactive customers`,id:`example-deactivate-inactive-customers`,children:[_jsx(_components.p,{children:`This example updates the status of multiple customers based on their last activity date.`}),_jsx(_components.p,{children:`Operation name: deactivateInactiveCustomers`}),_jsxs(Tabs,{children:[_jsx(Tab,{title:`filter`,id:`filter-8`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastActivityDate\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"$lt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.thresholdDate}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"active\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`update`,id:`update-3`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"$set\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"inactive\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"deactivationDate\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.currentDate}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"deactivationReason\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"inactivity\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})]}),_jsx(_components.p,{children:`This operation identifies all active customers whose last activity date is older than a threshold date and marks them as inactive.`}),_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Key MongoDB Operators`}),`: This example uses `,_jsx(_components.code,{children:`$lt`}),` (less than) for date comparison and `,_jsx(_components.code,{children:`$set`}),` to update specific fields without affecting other customer data. The `,_jsx(_components.code,{children:`$set`}),` operator is essential for partial document updates.`]})})]}),_jsxs(Accordion,{title:`Example: Update multiple customers by ID list`,id:`example-update-multiple-customers-by-id-list`,children:[_jsxs(_components.p,{children:[`This example demonstrates updating multiple specific customers using the `,_jsx(_components.code,{children:`$in`}),` operator.`]}),_jsx(_components.p,{children:`Operation name: updateCustomersByIdList`}),_jsxs(Tabs,{children:[_jsx(Tab,{title:`filter`,id:`filter-9`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"$in\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerIds}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`] }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`update`,id:`update-4`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"$set\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastContactedDate\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.currentDate}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"contactMethod\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.contactMethod}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"notes\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.contactNotes}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})]}),_jsx(_components.p,{children:`This operation updates all customers whose IDs are in the provided list, setting contact information for multiple customers at once.`}),_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Standard MongoDB Pattern`}),`: The combination of `,_jsx(_components.code,{children:`$in`}),` for filtering and `,_jsx(_components.code,{children:`$set`}),` for updating is a standard pattern in MongoDB. Use `,_jsx(_components.code,{children:`$in`}),` when you need to match against a list of values, and always use `,_jsx(_components.code,{children:`$set`}),` to avoid replacing the entire document.`]})})]}),_jsxs(Accordion,{title:`Example: Apply discount to products`,id:`example-apply-discount-to-products`,children:[_jsx(_components.p,{children:`This example applies a discount to all products in a specific category.`}),_jsx(_components.p,{children:`Operation name: applySeasonalDiscount`}),_jsxs(Tabs,{children:[_jsx(Tab,{title:`filter`,id:`filter-10`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"category\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.discountCategory}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"onSale\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsx(Tab,{title:`update`,id:`update-5`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"$mul\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"price\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#F44747`,\"--shiki-dark\":`#F44747`},children:`$`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#F44747`,\"--shiki-dark\":`#F44747`},children:`processInstance.discountFactor`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"$set\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"onSale\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"discountPercent\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.discountPercent}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"saleEndDate\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.saleEndDate}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})]}),_jsx(_components.p,{children:`This operation applies a discount to all products in a specific category by multiplying the price by a discount factor (e.g., 0.8 for 20% off) and setting sale-related fields.`}),_jsxs(Tip,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`MongoDB Operators in Action`}),`: This example demonstrates essential MongoDB operators:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`$mul`}),` multiplies the price by the discount factor`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`$set`}),` updates specific fields without affecting others`]}),`\n`,_jsxs(_components.li,{children:[`In the filter, you could use `,_jsx(_components.code,{children:`$in`}),` to target multiple categories: `,_jsx(_components.code,{children:`\"category\": {\"$in\": [\"electronics\", \"clothing\"]}`})]}),`\n`]})]})]})]}),_jsxs(Tab,{title:`deleteOne`,id:`deleteone`,\"data-child-tab-ids\":`[\"filter-11\",\"filter-12\"]`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Parameters:`})}),_jsxs(_components.p,{children:[`For complete documentation on deleteOne operations, see `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.deleteOne/`,children:`MongoDB db.collection.deleteOne()`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`filter`}),` (document, required): Criteria to match the document to delete. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/tutorial/query-documents/`,children:`Query Filter Documents`})]}),`\n`]}),_jsxs(Accordion,{title:`Example: Delete a customer record`,id:`example-delete-a-customer-record`,children:[_jsx(_components.p,{children:`This example removes a single customer record by ID.`}),_jsx(_components.p,{children:`Operation name: deleteCustomer`}),_jsx(Tabs,{children:_jsx(Tab,{title:`filter`,id:`filter-11`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerIdToDelete}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})}),_jsx(_components.p,{children:`This operation deletes a customer record with the specified ID. Make sure to implement proper validation and confirmation before executing deletion operations.`})]}),_jsxs(Accordion,{title:`Example: Remove abandoned cart`,id:`example-remove-abandoned-cart`,children:[_jsx(_components.p,{children:`This example removes an abandoned shopping cart after confirmation.`}),_jsx(_components.p,{children:`Operation name: removeAbandonedCart`}),_jsx(Tabs,{children:_jsx(Tab,{title:`filter`,id:`filter-12`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"cartId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.cartId}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"abandoned\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastUpdated\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"$lt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.thresholdDate}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})}),_jsx(_components.p,{children:`This operation deletes a shopping cart that’s been marked as abandoned and hasn’t been updated since a specific date.`})]})]}),_jsxs(Tab,{title:`deleteMany`,id:`deletemany`,\"data-child-tab-ids\":`[\"filter-13\",\"filter-14\"]`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Parameters:`})}),_jsxs(_components.p,{children:[`For complete documentation on deleteMany operations, see `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/reference/method/db.collection.deleteMany/`,children:`MongoDB db.collection.deleteMany()`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`filter`}),` (document, required): Criteria to match documents to delete. See `,_jsx(_components.a,{href:`https://www.mongodb.com/docs/manual/tutorial/query-documents/`,children:`Query Filter Documents`}),`. An empty filter (`,_jsx(_components.code,{children:`{}`}),`) is rejected. To match every document on purpose, pass `,_jsx(_components.code,{children:`{\"_id\": {\"$exists\": true}}`}),`.`]}),`\n`]}),_jsxs(Accordion,{title:`Example: Purge temporary records`,id:`example-purge-temporary-records`,children:[_jsx(_components.p,{children:`This example removes all temporary records older than a specified date.`}),_jsx(_components.p,{children:`Operation name: purgeTemporaryRecords`}),_jsx(Tabs,{children:_jsx(Tab,{title:`filter`,id:`filter-13`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"temporary\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"createdDate\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"$lt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.purgeThresholdDate}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})}),_jsx(_components.p,{children:`This operation removes all documents marked as “temporary” that were created before a specific date. Use with caution as this will delete all matching records.`})]}),_jsxs(Accordion,{title:`Example: Clear completed tasks`,id:`example-clear-completed-tasks`,children:[_jsx(_components.p,{children:`This example removes all completed tasks for a specific user.`}),_jsx(_components.p,{children:`Operation name: clearCompletedTasks`}),_jsx(Tabs,{children:_jsx(Tab,{title:`filter`,id:`filter-14`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"assignedTo\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.userId}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"completed\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"completedDate\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"$lt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.olderThanDate}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})}),_jsx(_components.p,{children:`This operation removes all tasks that are marked as completed, were assigned to a specific user, and were completed before a certain date.`})]})]})]}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:`Always use caution with update and delete operations, especially those that affect multiple documents (updateMany, deleteMany). Always include specific filter criteria to avoid unintended changes to your data.`}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`UPDATE`}),`, `,_jsx(_components.code,{children:`UPDATE_MANY`}),`, `,_jsx(_components.code,{children:`DELETE`}),`, and `,_jsx(_components.code,{children:`DELETE_MANY`}),` operations with a missing or empty filter are rejected with the error `,_jsx(_components.code,{children:`\u003coperation> requires a non-empty filter`}),`. To match every document on purpose, use the filter `,_jsx(_components.code,{children:`{\"_id\": {\"$exists\": true}}`}),`.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`real-world-example-customer-management-system`,children:`Real-world example: Customer management system`}),`\n`,_jsx(_components.p,{children:`This example demonstrates how a customer management system could use FlowX Database to persist and share customer data across different processes.`}),`\n`,_jsx(Accordion,{title:`Setup`,id:`setup`,children:_jsxs(Steps,{children:[_jsxs(Step,{title:`Create Customer collection`,children:[_jsx(_components.p,{children:`Create a new FlowX Database data source named “Customers”.`}),_jsx(Frame,{children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/470/create_cs_db.png`,alt:`Creating the Customers FlowX Database data source`})})})]}),_jsxs(Step,{title:`Define operations`,children:[_jsx(_components.p,{children:`Create the following operations:`}),_jsxs(Tabs,{children:[_jsxs(Tab,{title:`findCustomer`,id:`findcustomer`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Operation Type`}),`: findOne`]}),_jsx(Frame,{children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/470/findCustomer.png`,alt:`findOne operation configuration for findCustomer`})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Parameters`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"filter\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerId}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"projection\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"firstName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"phone\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerSince\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(_components.p,{children:`This operation retrieves a single customer by their customerId, returning only selected fields.`})]}),_jsxs(Tab,{title:`createCustomer`,id:`createcustomer`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Operation Type`}),`: insertOne`]}),_jsx(Frame,{children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/470/createCustomer.png`,alt:`insertOne operation configuration for createCustomer`})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Parameters`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`17`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"document\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.id}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"firstName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.firstName}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.lastName}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.email}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"phone\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.phone}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"active\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerSince\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.registrationDate}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"address\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"street\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.address.street}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"city\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.address.city}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"state\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.address.state}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"zipCode\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerData.address.zipCode}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(_components.p,{children:`This operation inserts a new customer document using data from the process instance.`})]}),_jsxs(Tab,{title:`updateCustomerStatus`,id:`updatecustomerstatus`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Operation Type`}),`: updateOne`]}),_jsx(Frame,{children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/470/updateCustomerStatus.png`,alt:`updateOne operation configuration for updateCustomerStatus`})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Parameters`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"filter\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.customerId}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"update\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"$set\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.newStatus}\"'}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastUpdated\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"${processInstance.currentDate}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(_components.p,{children:`This operation updates a customer’s status and sets the lastUpdated timestamp.`})]}),_jsxs(Tab,{title:`listActiveCustomers`,id:`listactivecustomers`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Operation Type`}),`: find()`]}),_jsx(Frame,{children:_jsx(_components.p,{children:_jsx(_components.img,{src:`https://s3.eu-west-1.amazonaws.com/docx.flowx.ai/470/listActiveCustomers.png`,alt:`find operation configuration for listActiveCustomers`})})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Parameters`}),`:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`17`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"filter\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"active\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"sort\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerSince\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`-1`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"limit\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`50`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"projection\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"customerId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"firstName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"lastName\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(_components.p,{children:`This operation retrieves a list of active customers, sorted by registration date (newest first), limited to 50 results.`})]})]})]})]})}),`\n`,_jsxs(Accordion,{title:`Customer support process`,id:`customer-support-process`,children:[_jsx(_components.p,{children:`In this process:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Support agent enters the customer ID`}),`\n`,_jsx(_components.li,{children:`A Data Source node retrieves the customer details from the Customers collection`}),`\n`,_jsx(_components.li,{children:`Customer information is displayed to the agent`}),`\n`,_jsx(_components.li,{children:`After resolving the issue, the support agent updates the customer status`}),`\n`,_jsx(_components.li,{children:`Another Data Source node updates the customer record in the database`}),`\n`]})]}),`\n`,_jsx(Accordion,{title:`Benefits demonstrated`,id:`benefits-demonstrated`,children:_jsxs(Card,{children:[_jsx(_components.p,{children:`This example shows how FlowX Database:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Enables data persistence across multiple processes`}),`\n`,_jsx(_components.li,{children:`Provides a single source of truth for customer data`}),`\n`,_jsx(_components.li,{children:`Makes data retrieval and updates easier`}),`\n`,_jsx(_components.li,{children:`Eliminates the need for external systems to store basic customer information`}),`\n`]})]})}),`\n`,_jsx(Heading,{level:`2`,id:`limitations-and-considerations`,children:`Limitations and considerations`}),`\n`,_jsxs(Expandable,{title:`Current limitations of FlowX Database`,children:[_jsx(Warning,{children:_jsx(_components.p,{children:`Multiple versions of documents are stored in the collection. Upon retrieval, all data that fits the filter conditions will be retrieved regardless of version.`})}),_jsx(Warning,{children:_jsx(_components.p,{children:`No automatic migration capabilities are available. Any migration will need to be done manually by the DevOps team.`})}),_jsx(Warning,{children:_jsx(_components.p,{children:`In the initial release, FlowX Database does not support transactions across multiple collections.`})}),_jsx(Warning,{children:_jsx(_components.p,{children:`Data validation based on a schema is not yet supported.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices`,children:`Best practices`}),`\n`,_jsx(Check,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Design before implementation`}),`: Plan your collections and operations carefully before implementation.`]})}),`\n`,_jsx(Check,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Keep document structure simple`}),`: Avoid deeply nested structures for better performance and easier querying.`]})}),`\n`,_jsx(Check,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Use meaningful names`}),`: Choose clear names for collections and operations.`]})}),`\n`,_jsx(Check,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Limit document size`}),`: Keep individual documents under 16MB for optimal performance.`]})}),`\n`,_jsx(Check,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Test operations thoroughly`}),`: Use the testing functionality to ensure operations work as expected.`]})}),`\n`,_jsx(Check,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Consider indexing`}),`: For large collections, consider indexing frequently queried fields.`]})}),`\n`,_jsx(Check,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Provide default values`}),`: Ensure all data types have default values (e.g., empty string for null, 0 for integers).`]})}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsx(Accordion,{title:`Operation fails with filter error`,id:`operation-fails-with-filter-error`,children:_jsxs(Steps,{children:[_jsx(Step,{title:`Problem`,children:_jsx(_components.p,{children:`Find operation fails with an error related to the filter syntax.`})}),_jsxs(Step,{title:`Solution`,children:[_jsx(_components.p,{children:`Check your filter syntax to ensure it follows MongoDB query syntax. Common issues:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Missing quotes around string values`}),`\n`,_jsx(_components.li,{children:`Incorrect operator syntax (e.g., using > instead of $gt)`}),`\n`,_jsx(_components.li,{children:`Mismatched brackets or braces`}),`\n`]})]})]})}),`\n`,_jsx(Accordion,{title:`Documents not appearing in results`,id:`documents-not-appearing-in-results`,children:_jsxs(Steps,{children:[_jsx(Step,{title:`Problem`,children:_jsx(_components.p,{children:`Your query doesn’t return expected documents.`})}),_jsx(Step,{title:`Solution`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Verify your filter conditions are correct`}),`\n`,_jsx(_components.li,{children:`Check if documents actually exist in the collection`}),`\n`,_jsx(_components.li,{children:`Try a more general query to see if documents are returned`}),`\n`,_jsx(_components.li,{children:`Check if field names in your filter match exactly with the document structure`}),`\n`]})})]})}),`\n`,_jsx(Accordion,{title:`Performance issues with large result sets`,id:`performance-issues-with-large-result-sets`,children:_jsxs(Steps,{children:[_jsx(Step,{title:`Problem`,children:_jsx(_components.p,{children:`Queries returning large amounts of data are slow.`})}),_jsx(Step,{title:`Solution`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Add pagination using skip and limit parameters`}),`\n`,_jsx(_components.li,{children:`Add more specific filter conditions`}),`\n`,_jsx(_components.li,{children:`Use projection to return only needed fields`}),`\n`,_jsx(_components.li,{children:`Consider indexing frequently queried fields`}),`\n`]})})]})}),`\n`,_jsx(Accordion,{title:`Insert operation fails`,id:`insert-operation-fails`,children:_jsxs(Steps,{children:[_jsx(Step,{title:`Problem`,children:_jsx(_components.p,{children:`Insert operation fails with an error.`})}),_jsx(Step,{title:`Solution`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Check that your document JSON is valid`}),`\n`,_jsx(_components.li,{children:`Ensure document size is under 16MB`}),`\n`,_jsx(_components.li,{children:`Verify all required fields are present`}),`\n`,_jsx(_components.li,{children:`Check for any unique constraint violations`}),`\n`]})})]})}),`\n`,_jsx(Heading,{level:`2`,id:`related-features`,children:`Related features`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Cookbook: reconcile invoices`,icon:`file-invoice-dollar`,href:`/6.x/cookbooks/invoice-reconciliation`,children:_jsx(_components.p,{children:`See FlowX Database in a full build: look up each invoice’s purchase order and compare them in a workflow.`})}),_jsx(Card,{title:`Data Search`,icon:`magnifying-glass`,href:`/6.x/docs/platform-deep-dive/core-extensions/search-data-service`,children:_jsx(_components.p,{children:`Learn about the Data Search service for indexing and searching process data.`})}),_jsx(Card,{title:`Integration Management`,icon:`plug`,href:`/6.x/docs/platform-deep-dive/integrations/integration-designer`,children:_jsx(_components.p,{children:`Understand how to manage integrations with external systems.`})}),_jsx(Card,{title:`Workflow`,icon:`diagram-project`,href:`/6.x/docs/platform-deep-dive/integrations/integration-designer#workflows`,children:_jsx(_components.p,{children:`See how workflows can interact with data sources.`})}),_jsx(Card,{title:`Process Data Model`,icon:`sitemap`,href:`/6.x/docs/building-blocks/process/data-model`,children:_jsx(_components.p,{children:`Learn about data models used within processes.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`summary`,children:`Summary`}),`\n`,_jsxs(_components.p,{children:[`FlowX Database provides a persistence layer that enables you to store and share data across different processes and projects. By using MongoDB’s capabilities through the `,_jsx(_components.strong,{children:`nosql-db-runner`}),` service, FlowX Database offers:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Flexible data storage`}),` for any structured data`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Data sharing`}),` between process instances`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Integration`}),` with workflows`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Independence`}),` from external systems for basic data persistence`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`mongodb-learning-resources`,children:`MongoDB learning resources`}),`\n`,_jsx(_components.p,{children:`To get the most out of FlowX Database, familiarize yourself with MongoDB concepts and operations:`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`MongoDB Manual`,icon:`book`,href:`https://www.mongodb.com/docs/manual/`,children:_jsx(_components.p,{children:`Complete MongoDB documentation covering all operations and concepts`})}),_jsx(Card,{title:`Query Tutorial`,icon:`magnifying-glass`,href:`https://www.mongodb.com/docs/manual/tutorial/query-documents/`,children:_jsx(_components.p,{children:`Learn how to construct effective MongoDB queries`})}),_jsx(Card,{title:`Update Operations`,icon:`pen-to-square`,href:`https://www.mongodb.com/docs/manual/tutorial/update-documents/`,children:_jsx(_components.p,{children:`Master document update operations and operators`})}),_jsx(Card,{title:`Data Modeling`,icon:`sitemap`,href:`https://www.mongodb.com/docs/manual/core/data-modeling-introduction/`,children:_jsx(_components.p,{children:`Best practices for structuring your data in MongoDB`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`faqs`,children:`FAQs`}),`\n`,_jsxs(Accordion,{title:`When should I use Data Search vs. FlowX Database?`,id:`when-should-i-use-data-search-vs-flowx-database`,children:[_jsx(_components.p,{children:`FlowX Database does not replace Data Search. Each serves different purposes in the platform.`}),_jsxs(Tabs,{children:[_jsx(Tab,{title:`FlowX Database`,id:`flowx-database`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Acts as a persistent data store`}),`\n`,_jsx(_components.li,{children:`Optimized for CRUD operations`}),`\n`,_jsx(_components.li,{children:`Stores structured business data`}),`\n`,_jsx(_components.li,{children:`Designed for sharing data across processes`}),`\n`,_jsx(_components.li,{children:`Uses MongoDB as the underlying technology (via nosql-db-runner service)`}),`\n`]})}),_jsx(Tab,{title:`Data Search`,id:`data-search`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Provides indexing and search capabilities`}),`\n`,_jsx(_components.li,{children:`Optimized for quick lookups and aggregations`}),`\n`,_jsx(_components.li,{children:`Used for debugging and analytics`}),`\n`,_jsx(_components.li,{children:`Enables searching across process instances`}),`\n`,_jsx(_components.li,{children:`Uses Elasticsearch as the underlying technology`}),`\n`]})})]})]}),`\n`,_jsxs(Accordion,{title:`What types of data should I store in FlowX Database?`,id:`what-types-of-data-should-i-store-in-flowx-database`,children:[_jsxs(_components.p,{children:[`FlowX Database is designed for `,_jsx(_components.strong,{children:`operational data with temporary character`}),`, including:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dashboard data`}),`: Aggregated information for reporting and visualization. For example, create operations that gather information from multiple processes and pull all the data to calculate sums, averages, or other metrics for executive dashboards`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cached data`}),`: Frequently accessed information that changes periodically, such as:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Daily exchange rates for financial calculations`}),`\n`,_jsx(_components.li,{children:`Product catalogs that update weekly`}),`\n`,_jsx(_components.li,{children:`Configuration data that multiple processes need to access`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Internal operational comments`}),`: Information that needs to be shared between users but shouldn’t reach business systems, such as:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Internal comments in a client’s profile for bank tellers`}),`\n`,_jsx(_components.li,{children:`Notes and annotations that support decision-making across different process instances`}),`\n`,_jsx(_components.li,{children:`Communication logs between team members working on the same case`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Shared process data`}),`: Information that needs to be accessed across multiple process instances - this solves the key pain point of data sharing between different process instances`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Temporary operational data`}),`: Working data that supports business processes but isn’t part of your permanent records`]}),`\n`]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Important`}),`: FlowX Database should `,_jsx(_components.strong,{children:`not become your primary book of records`}),` or system of record. Use it for operational data that supports your processes, not for critical business data that requires long-term retention and governance.`]})})]}),`\n`,_jsxs(Accordion,{title:`Can I share FlowX Database collections between different projects?`,id:`can-i-share-flowx-database-collections-between-different-projects`,children:[_jsx(_components.p,{children:`Yes, you can share collections between projects using the library approach:`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Create collections in one project`}),`: Set up your FlowX Database collections in a primary project`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Include as libraries`}),`: Add these collections as libraries in other projects that need access`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Maintain consistency`}),`: This approach ensures all projects use the same data structures and operations`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Future-proof management`}),`: Having centralized collection definitions makes updates and maintenance easier across all projects`]}),`\n`]}),_jsx(_components.p,{children:`This pattern is particularly useful for shared reference data, common configurations, or cross-project operational data.`}),_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Collection Ownership`}),`: Each FlowX Database collection has an owner - either the project where it was created or the library that contains it. By default, only processes and workflows within the same project can access a collection. If you need to access the same collection from multiple projects, create it in a library and then include that library in all projects that need access.`]})})]}),`\n`,_jsxs(Accordion,{title:`Why doesn't FlowX Database support automatic data migration?`,id:`why-doesnt-flowx-database-support-automatic-data-migration`,children:[_jsx(_components.p,{children:`FlowX Database intentionally does not provide automatic migration capabilities for several important reasons:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Data integrity`}),`: Many documents need to remain in their original format to maintain historical accuracy and compliance requirements`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Process dependencies`}),`: Existing processes may depend on specific data structures, and automatic changes could break functionality`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Business context`}),`: Data migration often requires business logic and context that automated systems cannot provide`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Risk management`}),`: Manual migration allows for proper testing and validation before changes are applied`]}),`\n`]}),_jsx(_components.p,{children:`When you need to modify data structures, plan for manual migration processes with proper testing and validation procedures handled by your DevOps team.`})]}),`\n`,_jsxs(Accordion,{title:`Can I store different types of documents in the same collection?`,id:`can-i-store-different-types-of-documents-in-the-same-collection`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`No, this is strongly discouraged.`}),` Each collection should contain documents with the same structure and purpose.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`DON’T DO IT`}),` - Mixing different document types in one collection can lead to:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Query complexity`}),`: Filtering becomes more complex when documents have different schemas`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Performance issues`}),`: Indexes become less effective with mixed document types`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Maintenance problems`}),`: Updates and changes become harder to manage`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Data consistency`}),`: Harder to ensure data quality and validation`]}),`\n`]}),_jsx(_components.p,{children:`Instead, create separate collections for each document type, even if they seem related. This follows MongoDB best practices and keeps your data organized and manageable.`})]}),`\n`,_jsxs(Accordion,{title:`How does FlowX Database solve cross-process data sharing?`,id:`how-does-flowx-database-solve-cross-process-data-sharing`,children:[_jsxs(_components.p,{children:[`FlowX Database solves the key pain point of `,_jsx(_components.strong,{children:`accessing the same data from multiple process instances`}),`:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cross-instance access`}),`: Multiple process instances can read from and write to the same collections simultaneously`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Data persistence`}),`: Data remains available even after individual processes complete`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Concurrent access`}),`: The underlying MongoDB technology (via nosql-db-runner) handles concurrent read/write operations safely`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Shared state`}),`: Enables complex workflows where processes need to coordinate through shared data`]}),`\n`]}),_jsx(_components.p,{children:`This capability enables use cases like multi-step approval processes, shared customer data across different business processes, and coordinated workflows that span multiple process instances - addressing a major limitation of traditional process-scoped data storage.`})]}),`\n`,_jsxs(Accordion,{title:`What's the relationship between FlowX Database and the nosql-db-runner service?`,id:`whats-the-relationship-between-flowx-database-and-the-nosql-db-runner-service`,children:[_jsxs(_components.p,{children:[`FlowX Database is powered by the `,_jsx(_components.strong,{children:`nosql-db-runner`}),` microservice, which provides:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pure MongoDB functionality`}),`: Direct access to MongoDB operations within the FlowX ecosystem`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Native integration`}),`: Connection between FlowX workflows and MongoDB operations`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Scalable architecture`}),`: A dedicated service that can be scaled independently based on database operation needs`]}),`\n`]}),_jsx(_components.p,{children:`The nosql-db-runner acts as the bridge between FlowX’s workflow engine and MongoDB, enabling you to use MongoDB’s full capabilities while maintaining FlowX’s process orchestration capabilities.`})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`academy-courses`,children:`Academy courses`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Integration Designer course`,icon:`graduation-cap`,href:`https://academy.flowx.ai/explore/integration-designer`,children:_jsx(_components.p,{children:`Hands-on course covering systems, data sources, workflows, and database integration patterns`})}),_jsx(Card,{title:`Data Mappers course`,icon:`graduation-cap`,href:`https://academy.flowx.ai/explore/5data-mappers`,children:_jsx(_components.p,{children:`Learn data mapping and transformation between process and integration workflows`})})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Academy playground`}),` — explore the `,_jsx(_components.a,{href:`https://designer-workshop-51x.playground.flowxai.dev/workspace/00000000-0000-0000-0000-000000000001/projects/f69d3816-8746-43bc-ac89-121a28710ee5/config/4082e8f4-2f17-4071-84ea-a0692b34fc83/processes`,children:_jsx(_components.strong,{children:`database`})}),` project for working examples of find, findOne, insert, and update operations.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"FlowX Database","description":"Store and access structured data across processes and apps","keywords":"flowx database, aggregate, aggregation, aggregation pipeline, MongoDB aggregation, group, sum, count, database operations, collections, NoSQL","owner":"docs","last_reviewed":"2026-10-29T00:00:00.000Z","href":"/6.x/docs/platform-deep-dive/integrations/flowx-database"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What is FlowX Database?","slug":"what-is-flowx-database","depth":2,"children":[]},{"title":"Key concepts","slug":"key-concepts","depth":2,"children":[]},{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Benefits of FlowX Database","slug":"benefits-of-flowx-database","depth":2,"children":[]},{"title":"How to use FlowX Database","slug":"how-to-use-flowx-database","depth":2,"children":[{"title":"Creating a collection","slug":"creating-a-collection","depth":3,"children":[]},{"title":"Viewing collection data","slug":"viewing-collection-data","depth":3,"children":[]},{"title":"Managing collection settings","slug":"managing-collection-settings","depth":3,"children":[]},{"title":"How do I make an index unique?","slug":"how-do-i-make-an-index-unique","depth":3,"children":[]},{"title":"Creating database operations","slug":"creating-database-operations","depth":3,"children":[]},{"title":"Visual query builder","slug":"visual-query-builder","depth":3,"children":[]},{"title":"Condition rows","slug":"condition-rows","depth":4,"children":[]},{"title":"Type-aware operators","slug":"type-aware-operators","depth":4,"children":[]},{"title":"Intersects on array fields","slug":"intersects-on-array-fields","depth":4,"children":[]},{"title":"Builder sections by operation type","slug":"builder-sections-by-operation-type","depth":4,"children":[]},{"title":"Testing operations","slug":"testing-operations","depth":4,"children":[]},{"title":"Aggregation pipelines","slug":"aggregation-pipelines","depth":3,"children":[]}]},{"title":"Working with FlowX Database in workflows","slug":"working-with-flowx-database-in-workflows","depth":2,"children":[]},{"title":"MongoDB operations supported","slug":"mongodb-operations-supported","depth":2,"children":[]},{"title":"Real-world example: Customer management system","slug":"real-world-example-customer-management-system","depth":2,"children":[]},{"title":"Limitations and considerations","slug":"limitations-and-considerations","depth":2,"children":[]},{"title":"Best practices","slug":"best-practices","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]},{"title":"Related features","slug":"related-features","depth":2,"children":[]},{"title":"Summary","slug":"summary","depth":2,"children":[]},{"title":"MongoDB learning resources","slug":"mongodb-learning-resources","depth":2,"children":[]},{"title":"FAQs","slug":"faqs","depth":2,"children":[]},{"title":"Academy courses","slug":"academy-courses","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/flowxai/9795f3937492dd76/snippets/zendesk-verification.js","/_mintlify/custom/flowxai/93d12cb97573b7cd/snippets/intro-hero.js","/_mintlify/custom/flowxai/90103fefc8b4bea0/snippets/footer-horizon.js"],"subdomain":"flowxai","siteName":"FlowX.AI","title":"FlowX Database - FlowX.AI","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"contextualStarterQuestions":[{"_id":"6ae4be402e85ccd8a8a6d4de","deploymentId":"694954a421c35c020852b639","questionText":"What is FlowX Database?","status":"active","generatedBy":"contextual","path":"6.x/docs/platform-deep-dive/integrations/flowx-database","createdAt":"2026-10-30T15:56:48.815Z","updatedAt":"2026-10-30T15:56:48.815Z","__v":0},{"_id":"6ae4be402e85ccd8a8a6d4e0","deploymentId":"694954a421c35c020852b639","questionText":"What operations are supported?","status":"active","generatedBy":"contextual","path":"6.x/docs/platform-deep-dive/integrations/flowx-database","createdAt":"2026-10-30T15:56:48.815Z","updatedAt":"2026-10-30T15:56:48.815Z","__v":0},{"_id":"6ae4be402e85ccd8a8a6d4df","deploymentId":"694954a421c35c020852b639","questionText":"How do I create collections?","status":"active","generatedBy":"contextual","path":"6.x/docs/platform-deep-dive/integrations/flowx-database","createdAt":"2026-10-30T15:56:48.815Z","updatedAt":"2026-10-30T15:56:48.815Z","__v":0}],"navMaps":{"firstHrefInVersion":{"v6.x":{"href":"/6.x/docs/platform-deep-dive/integrations/flowx-database","matchLevel":0},"v5.9.x":{"href":"/5.9/docs/platform-deep-dive/integrations/flowx-database","matchLevel":1},"v5.1.x":{"href":"/5.1/docs/platform-deep-dive/integrations/flowx-database","matchLevel":1},"v4.7.x":{"href":"/4.7.x/docs/platform-deep-dive/core-components/flowx-engine","matchLevel":2},"v4.1.x":{"href":"/4.1.x/docs/platform-deep-dive/core-components/flowx-engine","matchLevel":2},"v3.x":{"href":"/3.x/docs/platform-deep-dive/core-components/flowx-engine","matchLevel":2}},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T15:55:57.585Z","gitLastModified":"2026-10-30T15:55:04.000Z","originalFileLocation":"6.x/docs/platform-deep-dive/integrations/flowx-database.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Store and access structured data across processes and apps\">\u003cmeta data-mint-head name=\"application-name\" content=\"FlowX.AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"FlowX Database - FlowX.AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Store and access structured data across processes and apps\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"FlowX.AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/flowx-database\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://flowxai.mintlify.app/_mintlify/api/og/v2?division=Data+sources\u0026amp;title=FlowX+Database\u0026amp;description=Store+and+access+structured+data+across+processes+and+apps\u0026amp;theme=021ad2ee1834111be160e8a7\u0026amp;signature=38116348b15c01d50e59c0c233fbb2a24b52b624066053a9ef7856708e956372\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"FlowX Database - FlowX.AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Store and access structured data across processes and apps\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://flowxai.mintlify.app/_mintlify/api/og/v2?division=Data+sources\u0026amp;title=FlowX+Database\u0026amp;description=Store+and+access+structured+data+across+processes+and+apps\u0026amp;theme=021ad2ee1834111be160e8a7\u0026amp;signature=38116348b15c01d50e59c0c233fbb2a24b52b624066053a9ef7856708e956372\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/flowxai/tLAtpK66JQ6LptNv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"FlowX.AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#fcb813\">\u003cmeta data-mint-head name=\"zd-site-verification\" content=\"94tteg5ir5of8gkb4twzh\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/flowx-database\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/6.x/docs/platform-deep-dive/integrations/flowx-database.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.flowx.ai/#organization\",\"name\":\"FlowX.AI\",\"url\":\"https://docs.flowx.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/flowxai/38fXEM0a7v86Lg2m/logo/light.png?fit=max\u0026auto=format\u0026n=38fXEM0a7v86Lg2m\u0026q=85\u0026s=d767c06cef433b0a02f40a1f4f785eab\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.flowx.ai#website\",\"name\":\"FlowX.AI\",\"url\":\"https://docs.flowx.ai\",\"publisher\":{\"@id\":\"https://docs.flowx.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/flowx-database#webpage\",\"url\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/flowx-database\",\"name\":\"FlowX Database\",\"description\":\"Store and access structured data across processes and apps\",\"dateModified\":\"2026-10-30T15:55:04.000Z\",\"isPartOf\":{\"@id\":\"https://docs.flowx.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/flowx-database#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/flowx-database#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Platform deep dive\",\"item\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/core-components/flowx-engine\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Integrations\",\"item\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/integrations-overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"FlowX Database\",\"item\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/flowx-database\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/flowx-database#article\",\"headline\":\"FlowX Database\",\"name\":\"FlowX Database\",\"description\":\"Store and access structured data across processes and apps\",\"url\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/flowx-database\",\"mainEntityOfPage\":{\"@id\":\"https://docs.flowx.ai/6.x/docs/platform-deep-dive/integrations/flowx-database#webpage\"},\"dateModified\":\"2026-10-30T15:55:04.000Z\",\"publisher\":{\"@id\":\"https://docs.flowx.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.flowx.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"FlowX.AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"FlowX.AI","nav":{"global":null,"versions":[{"version":"v6.x","tag":"Preview","tabs":[{"tab":"Documentation","icon":"book","groups":[{"group":"Getting Started","pages":[{"title":"FlowX.AI documentation","icon":"book-open","mode":"wide","href":"/6.x/docs/introduction"},{"title":"Tutorial: Build a credit card application","sidebarTitle":"Build your first process","icon":"rocket","href":"/6.x/docs/getting-started/building-your-first-proc"},{"title":"Tutorial: Build your first workflow","sidebarTitle":"Build your first workflow","icon":"diagram-next","href":"/6.x/docs/getting-started/building-your-first-workflow"},{"title":"Tutorial: Build your first UI Flow","sidebarTitle":"Build your first UI Flow","icon":"browser","href":"/6.x/docs/getting-started/building-your-first-ui-flow"},{"title":"Glossary","icon":"book","href":"/6.x/docs/getting-started/glossary"},{"title":"Using FlowX docs with AI assistants","icon":"robot","href":"/6.x/docs/getting-started/using-flowx-docs-with-ai"}]},{"group":"Concepts","pages":[{"title":"FlowX.AI architecture: services, layers, and data flow","sidebarTitle":"FlowX.AI architecture","icon":"diagram-project","href":"/6.x/docs/platform-overview/flowx-architecture"},{"title":"FlowX.AI data architecture: which service uses which store","sidebarTitle":"Data architecture","icon":"database","href":"/6.x/docs/platform-overview/data-architecture"},{"title":"Security","icon":"shield-check","href":"/6.x/docs/platform-overview/security"},{"title":"Intro to BPMN","icon":"diagram-project","href":"/6.x/docs/platform-overview/frameworks-and-standards/business-process-industry-standards/intro-to-bpmn"},{"group":"Infrastructure technologies","icon":"server","pages":[{"title":"Intro to Elasticsearch","href":"/6.x/docs/platform-overview/frameworks-and-standards/event-driven-architecture-frameworks/intro-to-elasticsearch"},{"title":"Intro to Kafka concepts","href":"/6.x/docs/platform-overview/frameworks-and-standards/event-driven-architecture-frameworks/intro-to-kafka-concepts"},{"title":"Intro to Kubernetes","href":"/6.x/docs/platform-overview/frameworks-and-standards/event-driven-architecture-frameworks/intro-to-kubernetes"},{"title":"Intro to NGINX","href":"/6.x/docs/platform-overview/frameworks-and-standards/event-driven-architecture-frameworks/intro-to-nginx"},{"title":"Intro to Redis","href":"/6.x/docs/platform-overview/frameworks-and-standards/event-driven-architecture-frameworks/intro-to-redis"}]}]},{"group":"FlowX.AI Designer","pages":[{"title":"FlowX.AI Designer","icon":"pen-ruler","href":"/6.x/docs/flowx-designer/overview"},{"title":"Notification center","icon":"bell","href":"/6.x/docs/flowx-designer/notification-center"},{"group":"Design Assets","icon":"pen","pages":[{"title":"Themes","href":"/6.x/docs/flowx-designer/design-assets/themes"},{"title":"Fonts","href":"/6.x/docs/flowx-designer/design-assets/font-files"},{"title":"Global Media Library","href":"/6.x/docs/flowx-designer/design-assets/global-media-library"}]},{"group":"Managing a project flow","icon":"arrow-progress","pages":[{"title":"Creating a new project","href":"/6.x/docs/flowx-designer/managing-a-project-flow/creating-a-project"},{"title":"Creating and managing process definitions","href":"/6.x/docs/flowx-designer/managing-a-project-flow/creating-a-new-process-definition"},{"title":"Adding a new node","href":"/6.x/docs/flowx-designer/managing-a-project-flow/adding-a-new-node"},{"title":"Adding an action to a node","href":"/6.x/docs/flowx-designer/managing-a-project-flow/adding-an-action-to-a-node"},{"title":"Handling decisions in the flow","href":"/6.x/docs/flowx-designer/managing-a-project-flow/handling-decisions-in-the-flow"},{"title":"Adding parallel flow branches","href":"/6.x/docs/flowx-designer/managing-a-project-flow/adding-more-flow-branches"},{"title":"Creating a user interface","href":"/6.x/docs/flowx-designer/managing-a-project-flow/creating-a-user-interface"},{"title":"Moving a token backwards in a process","href":"/6.x/docs/flowx-designer/managing-a-project-flow/moving-a-token-backwards-in-a-process"},{"title":"Exporting and importing projects","href":"/6.x/docs/flowx-designer/managing-a-project-flow/export-import-a-process-definition"},{"title":"Initiating/starting processes","href":"/6.x/docs/flowx-designer/managing-a-project-flow/starting-a-process"}]}]},{"group":"Building projects","pages":[{"title":"Workspaces","icon":"building-columns","href":"/6.x/docs/projects/workspaces"},{"title":"Resources","icon":"building-wheat","href":"/6.x/docs/projects/resources"},{"title":"Reference types in resources usage","icon":"link","href":"/6.x/docs/projects/reference-types"},{"group":"Configuration","icon":"box","pages":[{"title":"Projects","href":"/6.x/docs/projects/managing-applications/application"},{"title":"Libraries","href":"/6.x/docs/projects/managing-applications/libraries"},{"title":"Versioning","href":"/6.x/docs/projects/managing-applications/versioning"},{"title":"Checking a version for issues","icon":"triangle-exclamation","href":"/6.x/docs/projects/managing-applications/checking-for-issues"},{"title":"Dependencies","href":"/6.x/docs/projects/managing-applications/dependencies"}]},{"group":"Runtime","icon":"play","pages":[{"title":"Builds","href":"/6.x/docs/projects/runtime/builds"},{"title":"Active policy","href":"/6.x/docs/projects/runtime/active-policy"},{"title":"Configuration parameters overrides","href":"/6.x/docs/projects/runtime/configuration-parameters-overrides"},{"group":"Active process","pages":[{"title":"Process instance","href":"/6.x/docs/projects/runtime/active-process/process-instance"},{"title":"Update process variables","href":"/6.x/docs/projects/runtime/active-process/update-process-variables"},{"title":"Migrate process instances","href":"/6.x/docs/projects/runtime/active-process/migrate-process-instances"},{"title":"Move tokens","href":"/6.x/docs/projects/runtime/active-process/move-token"},{"title":"Failed process start (exceptions)","href":"/6.x/docs/projects/runtime/active-process/failed-process-start"}]},{"title":"Schedules","href":"/6.x/docs/projects/runtime/scheduled-processes"},{"title":"Manage Triggers","href":"/6.x/docs/projects/runtime/manage-triggers"},{"title":"Workflow instances","icon":"diagram-project","href":"/6.x/docs/projects/runtime/workflow-instances"},{"title":"UI Flow Sessions","href":"/6.x/docs/projects/runtime/ui-flow-sessions"}]}]},{"group":"Building blocks","pages":[{"group":"Processes","icon":"network-wired","pages":[{"title":"Process Designer","href":"/6.x/docs/building-blocks/process/process"},{"title":"Process definition","href":"/6.x/docs/building-blocks/process/process-definition"},{"title":"Permission-based expressions","href":"/6.x/docs/building-blocks/process/permission-based-expressions"},{"title":"Process data model","href":"/6.x/docs/building-blocks/process/data-model"},{"title":"Data mappers","href":"/6.x/docs/building-blocks/process/data-mappers"},{"title":"Passing data between nodes","href":"/6.x/docs/building-blocks/process/passing-data-between-nodes"},{"title":"Subprocess management","href":"/6.x/docs/building-blocks/process/subprocess"},{"title":"Navigation areas","href":"/6.x/docs/building-blocks/process/navigation-areas"},{"title":"Navigation best practices","href":"/6.x/docs/building-blocks/process/navigation-best-practices"},{"title":"Process design principles","href":"/6.x/docs/building-blocks/process/design-principles"}]},{"group":"Nodes","icon":"circle-nodes","pages":[{"title":"Process nodes (BPMN)","href":"/6.x/docs/building-blocks/node/node"},{"title":"Start/end nodes","href":"/6.x/docs/building-blocks/node/start-end-node"},{"title":"Send message/receive message tasks","href":"/6.x/docs/building-blocks/node/message-send-received-task-node"},{"title":"Service Task node","href":"/6.x/docs/building-blocks/node/task-node"},{"title":"User task node","href":"/6.x/docs/building-blocks/node/user-task-node"},{"title":"Exclusive gateway","href":"/6.x/docs/building-blocks/node/exclusive-gateway-node"},{"title":"Parallel gateway","href":"/6.x/docs/building-blocks/node/parallel-gateway"},{"group":"Call subprocess tasks","pages":[{"title":"Call activity node","href":"/6.x/docs/building-blocks/node/call-subprocess-tasks/call-activity-node"},{"title":"Start embedded subprocess","href":"/6.x/docs/building-blocks/node/call-subprocess-tasks/start-embedded-subprocess"}]},{"group":"Message events","pages":[{"title":"Message Events","href":"/6.x/docs/building-blocks/node/message-events/message-events"},{"title":"Message Start Event","href":"/6.x/docs/building-blocks/node/message-events/message-catch-start-event"},{"group":"Message intermediate events","pages":[{"title":"Message intermediate events overview","href":"/6.x/docs/building-blocks/node/message-events/message-intermediate/message-intermediate"},{"title":"Message throw intermediate event","href":"/6.x/docs/building-blocks/node/message-events/message-intermediate/message-throw-intermediate-event"},{"title":"Message catch intermediate event","href":"/6.x/docs/building-blocks/node/message-events/message-intermediate/message-catch-intermediate-event"},{"title":"Intermediate message events in business processes","href":"/6.x/docs/building-blocks/node/message-events/message-intermediate/example-intermediate-message-events"}]},{"title":"Message catch boundary events","href":"/6.x/docs/building-blocks/node/message-events/message-catch-boundary-event"}]},{"group":"Timer events","pages":[{"title":"Timer events","href":"/6.x/docs/building-blocks/node/timer-events/timer-events"},{"title":"Timer start event","href":"/6.x/docs/building-blocks/node/timer-events/timer-start-event"},{"title":"Timer Intermediate Event (interrupting)","href":"/6.x/docs/building-blocks/node/timer-events/timer-intermediate-event"},{"title":"Timer boundary event","href":"/6.x/docs/building-blocks/node/timer-events/timer-boundary-event"},{"title":"Timer expressions","href":"/6.x/docs/building-blocks/node/timer-events/timer-expressions"}]},{"title":"Error events","href":"/6.x/docs/building-blocks/node/error-events"}]},{"group":"Actions","icon":"bolt","pages":[{"title":"Node actions","href":"/6.x/docs/building-blocks/actions/actions"},{"group":"Business rule actions","pages":[{"title":"Business rules types","href":"/6.x/docs/building-blocks/actions/business-rule-action/business-rule-action"},{"title":"Extracting additional data in business rules","href":"/6.x/docs/building-blocks/actions/business-rule-action/extracting-additional-data"}]},{"title":"Send data to user interface","href":"/6.x/docs/building-blocks/actions/send-data-to-user-interface"},{"title":"Upload file action","href":"/6.x/docs/building-blocks/actions/upload-file-action"},{"title":"Start subprocess action","href":"/6.x/docs/building-blocks/actions/start-subprocess-action"},{"title":"Append params to parent process","href":"/6.x/docs/building-blocks/actions/append-params-to-parent-process"},{"title":"Kafka send action","href":"/6.x/docs/building-blocks/actions/kafka-send-action"},{"title":"Start integration workflow action","href":"/6.x/docs/building-blocks/actions/start-integration-workflow"},{"title":"Start new project instance","href":"/6.x/docs/building-blocks/actions/start-new-project-instance"},{"title":"Send notification action","href":"/6.x/docs/building-blocks/actions/send-notification-action"}]},{"group":"UI Designer","icon":"paintbrush","pages":[{"title":"UI Designer","href":"/6.x/docs/building-blocks/ui-designer/ui-designer"},{"title":"Platform-specific considerations","href":"/6.x/docs/building-blocks/ui-designer/platform-considerations"},{"title":"Screen configuration guide","href":"/6.x/docs/building-blocks/ui-designer/screen-configuration-guide"},{"title":"UI Designer best practices","href":"/6.x/docs/building-blocks/ui-designer/best-practices"},{"group":"Root components","pages":[{"title":"Root Components in UI Design","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/root-components/root-components"},{"title":"Container","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/root-components/container"},{"title":"Card","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/root-components/card"},{"title":"Custom component","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/root-components/custom"},{"title":"Global Header and Footer","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/root-components/global-header-footer"}]},{"group":"Collections UI elements","pages":[{"title":"Collection","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/collection/collection"},{"title":"Collection Prototype","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/collection/collection-prototype"}]},{"group":"Form elements","pages":[{"title":"Input field","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/input-form-field"},{"title":"Text area","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/text-area"},{"title":"Single Select","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/select-form-field"},{"title":"Multi select","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/multi-select"},{"title":"Checkbox","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/checkbox-form-field"},{"title":"Radio","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/radio-form-field"},{"title":"Switch","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/switch-form-field"},{"title":"Datepicker","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/datepicker-form-field"},{"title":"Slider","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/slider"},{"title":"Segmented button","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/form-elements/segmented-button"}]},{"title":"Buttons","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/buttons"},{"title":"Multiple file upload","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/multiple-file-upload"},{"title":"File preview","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/file-preview"},{"title":"File download","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/file-download"},{"title":"Table","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/table"},{"title":"Image","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/image"},{"title":"Indicators","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/indicators"},{"title":"Typography","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/typography"},{"title":"Chat","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/chat"},{"title":"Markdown","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/markdown"},{"title":"Separator","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/separator"},{"title":"Progress bar","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/progress-bar"},{"title":"Tooltip","href":"/6.x/docs/building-blocks/ui-designer/ui-component-types/tooltip"},{"title":"Event Handlers","href":"/6.x/docs/building-blocks/ui-designer/event-handlers"},{"title":"Validators","href":"/6.x/docs/building-blocks/ui-designer/validators"},{"title":"Dynamic \u0026 computed values","href":"/6.x/docs/building-blocks/ui-designer/dynamic-and-computed-values"},{"title":"Localization and internationalization","href":"/6.x/docs/building-blocks/ui-designer/localization-and-i18n"},{"title":"Layout configuration","href":"/6.x/docs/building-blocks/ui-designer/layout-configuration"},{"title":"Conditional styling","href":"/6.x/docs/building-blocks/ui-designer/conditional-styling"}]},{"title":"UI Flows","icon":"file-pen","href":"/6.x/docs/building-blocks/ui-flows"},{"title":"Combine UI Flows, processes, and workflows","sidebarTitle":"Combine UI Flows, processes, and workflows","icon":"diagram-project","href":"/6.x/docs/building-blocks/combining-ui-flows-processes-and-workflows"},{"title":"Project data model","icon":"square-binary","href":"/6.x/docs/building-blocks/project-data-model"},{"title":"Token","icon":"coins","href":"/6.x/docs/building-blocks/token"},{"title":"Supported scripts","icon":"file-code","href":"/6.x/docs/building-blocks/supported-scripts"},{"group":"Reusable resources","icon":"puzzle-piece","pages":[{"title":"Reusable Functions","href":"/6.x/docs/building-blocks/reusable-resources/reusable-functions"},{"title":"Reusable UI Templates","href":"/6.x/docs/building-blocks/reusable-resources/reusable-ui"},{"title":"Custom Components","href":"/6.x/docs/building-blocks/reusable-resources/custom-components"}]}]},{"group":"Platform deep dive","pages":[{"group":"Core components","icon":"puzzle","pages":[{"title":"FlowX.AI Engine","href":"/6.x/docs/platform-deep-dive/core-components/flowx-engine"},{"title":"FlowX.AI Advancing Controller","href":"/6.x/docs/platform-deep-dive/core-components/advancing-controller"},{"title":"FlowX.AI Events Gateway","href":"/6.x/docs/platform-deep-dive/core-components/events-gateway"}]},{"group":"Core extensions","icon":"puzzle-piece","pages":[{"group":"Content management","pages":[{"title":"FlowX.AI CMS","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/content-management"},{"title":"Enumerations","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/enumerations"},{"title":"Substitution tags","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/substitution-tags"},{"title":"Media library","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/media-library"},{"group":"Document Templates","pages":[{"title":"Document Templates","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/documents-plugin-overview"},{"title":"Generating documents","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/generating-from-html-templates"},{"title":"Managing templates","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/managing-html-templates"},{"title":"Creating and uploading a new document","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/uploading-a-new-document"},{"title":"Converting files","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/converting-documents-to-different-formats"},{"title":"Splitting documents","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/splitting-a-document"},{"title":"Combining files","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/combining-files"},{"title":"Deleting files","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/deleting-a-file"},{"title":"Getting URLs","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/getting-urls-to-documents"},{"title":"Listing stored files","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/listing-stored-files"},{"title":"Encrypting and decrypting files","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/documents-plugin/encrypting-decrypting-files"}]},{"group":"Notification Templates","pages":[{"title":"Notification Templates","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/notifications-plugin-overview"},{"title":"Managing notification templates","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/managing-notification-templates"},{"title":"Sending a notification","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/sending-a-notification"},{"title":"Sending an email","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/sending-an-email-with-attachments"},{"title":"Forwarding notifications","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/forwarding-notifications-to-an-external-system"},{"group":"OTP flow","pages":[{"title":"Handling OTP","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/otp-flow/otp-flow"},{"title":"Generate OTP","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/otp-flow/generate-otp"},{"title":"Validate OTP","href":"/6.x/docs/platform-deep-dive/core-extensions/content-management/notifications-plugin/otp-flow/validate-otp"}]}]}]},{"group":"Task management","pages":[{"title":"Task management","href":"/6.x/docs/platform-deep-dive/core-extensions/task-management/task-management-overview"},{"title":"Task Management localization","href":"/6.x/docs/platform-deep-dive/core-extensions/task-management/task-management-localization"},{"title":"Using allocation rules","href":"/6.x/docs/platform-deep-dive/core-extensions/task-management/using-allocation-rules"},{"title":"Using out of office records","href":"/6.x/docs/platform-deep-dive/core-extensions/task-management/using-out-of-office-records"},{"title":"Using stages","href":"/6.x/docs/platform-deep-dive/core-extensions/task-management/using-stages"}]},{"title":"Configuration parameters","href":"/6.x/docs/platform-deep-dive/core-extensions/configuration-parameters"},{"title":"FlowX.AI Audit","href":"/6.x/docs/platform-deep-dive/core-extensions/audit"},{"title":"FlowX.AI Scheduler","href":"/6.x/docs/platform-deep-dive/core-extensions/scheduler"},{"title":"FlowX.AI Data Search","href":"/6.x/docs/platform-deep-dive/core-extensions/search-data-service"}]},{"group":"Plugins","icon":"puzzle-piece-simple","pages":[{"title":"FlowX custom plugins","href":"/6.x/docs/platform-deep-dive/plugins/custom-plugins"},{"title":"OCR plugin","href":"/6.x/docs/platform-deep-dive/plugins/custom-plugins/ocr-plugin"},{"group":"Reporting plugin","pages":[{"title":"Reporting plugin","href":"/6.x/docs/platform-deep-dive/plugins/custom-plugins/reporting/reporting-overview"},{"title":"Authorization \u0026 access roles","href":"/6.x/docs/platform-deep-dive/plugins/custom-plugins/reporting/access-and-authorization"}]},{"title":"WYSIWYG editor","href":"/6.x/docs/platform-deep-dive/plugins/wysiwyg"}]},{"group":"Integrations","icon":"link","pages":[{"title":"Choose how to connect FlowX.AI to external systems","sidebarTitle":"Overview","href":"/6.x/docs/platform-deep-dive/integrations/integrations-overview"},{"title":"Consuming FlowX from external apps","href":"/6.x/docs/platform-deep-dive/integrations/consuming-flowx-from-external-apps"},{"title":"Finding identifiers and parameters","href":"/6.x/docs/platform-deep-dive/integrations/finding-identifiers-and-parameters"},{"group":"Integration Designer","pages":[{"title":"Integration Designer","href":"/6.x/docs/platform-deep-dive/integrations/integration-designer"},{"title":"Workflow data model","href":"/6.x/docs/platform-deep-dive/integrations/workflow-data-models"},{"title":"Custom Agent node","href":"/6.x/docs/platform-deep-dive/integrations/custom-agent-node"},{"title":"Deep Research node","href":"/6.x/docs/platform-deep-dive/integrations/deep-research-node"},{"title":"Document classifiers","href":"/6.x/docs/platform-deep-dive/integrations/document-classifiers"},{"title":"Proxy connections","href":"/6.x/docs/platform-deep-dive/integrations/proxy-connections"},{"group":"MCP Integration","pages":[{"title":"MCP integration","href":"/6.x/docs/platform-deep-dive/integrations/mcp-integration/mcp-integration-overview"},{"title":"MCP Data Sources","href":"/6.x/docs/platform-deep-dive/integrations/mcp-integration/adding-mcp-data-source"}]},{"group":"Knowledge Base Integration","pages":[{"title":"Knowledge Base integration","href":"/6.x/docs/platform-deep-dive/integrations/knowledge-base-integration/knowledge-base-overview"},{"title":"Managing stores","href":"/6.x/docs/platform-deep-dive/integrations/knowledge-base-integration/managing-content"},{"title":"Using Knowledge Base in workflows","href":"/6.x/docs/platform-deep-dive/integrations/knowledge-base-integration/using-knowledge-base-in-workflows"},{"title":"Testing a knowledge base","description":"Test create, append, replace, delete, edit-metadata, and query operations against a knowledge base on a deployed build before running them in production.","href":"/6.x/docs/platform-deep-dive/integrations/knowledge-base-integration/testing-knowledge-base"}]}]},{"group":"Data sources","pages":[{"title":"FlowX Database","href":"/6.x/docs/platform-deep-dive/integrations/flowx-database"},{"title":"Unmanaged MongoDB","description":"Connect to externally managed MongoDB instances as a data source in FlowX workflows.","href":"/6.x/docs/platform-deep-dive/integrations/unmanaged-mongodb"},{"title":"Oracle Database","href":"/6.x/docs/platform-deep-dive/integrations/oracle-database"},{"title":"PostgreSQL Database","href":"/6.x/docs/platform-deep-dive/integrations/postgresql-database"},{"title":"Db2 Database","href":"/6.x/docs/platform-deep-dive/integrations/db2-database"},{"title":"Testing data sources from Runtime","href":"/6.x/docs/platform-deep-dive/integrations/testing-data-sources"},{"title":"SOAP System","href":"/6.x/docs/platform-deep-dive/integrations/soap-system"},{"title":"File Storage","href":"/6.x/docs/platform-deep-dive/integrations/file-storage"},{"title":"Email Trigger","href":"/6.x/docs/platform-deep-dive/integrations/email-trigger"},{"title":"Email Sender","href":"/6.x/docs/platform-deep-dive/integrations/email-sender"},{"title":"Microsoft Outlook","href":"/6.x/docs/platform-deep-dive/integrations/microsoft-outlook-data-source"},{"title":"Incoming Webhooks","href":"/6.x/docs/platform-deep-dive/integrations/incoming-webhooks"}]},{"group":"Custom integrations","pages":[{"title":"Building a connector","href":"/6.x/docs/platform-deep-dive/integrations/building-a-connector"},{"title":"Creating a Kafka consumer","href":"/6.x/docs/platform-deep-dive/integrations/creating-a-kafka-consumer"},{"title":"Creating a Kafka producer","href":"/6.x/docs/platform-deep-dive/integrations/creating-a-kafka-producer"}]},{"group":"Testing \u0026 monitoring","pages":[{"title":"Mock integrations","href":"/6.x/docs/platform-deep-dive/integrations/mock-integrations"},{"title":"Observability with OpenTelemetry","href":"/6.x/docs/platform-deep-dive/integrations/open-telemetry"}]}]},{"title":"Third-party components","icon":"cube","href":"/6.x/docs/platform-deep-dive/third-party-components"},{"title":"Accessibility","icon":"universal-access","href":"/6.x/docs/platform-deep-dive/accessibility"},{"group":"User roles management","icon":"user","pages":[{"title":"Swimlanes","href":"/6.x/docs/platform-deep-dive/user-roles-management/swimlanes"},{"title":"Business filters","href":"/6.x/docs/platform-deep-dive/user-roles-management/business-filters"},{"title":"Anonymous runtime access","href":"/6.x/docs/platform-deep-dive/user-roles-management/anonymous-runtime-access"}]}]},{"group":"Resources","pages":[{"title":"Error glossary","icon":"circle-exclamation","href":"/6.x/docs/resources/error-glossary"}]},{"group":"API reference","pages":[{"group":"Start processes","pages":[{"title":"Get Build Info","api":"GET https://admin.devmain.flowxai.dev/rtm/api/runtime/wks/{workspaceId}/app/{appId}/build/info","href":"/6.x/docs/api/start-process/get-build-info"},{"title":"Get build info by process instance","api":"GET {BASE_URL}/api/runtime/process-instance/{processInstanceUuid}/build/info","href":"/6.x/docs/api/start-process/build-info-by-process-instance"},{"title":"Get build info by UI flow session","api":"GET {BASE_URL}/api/runtime/ui-flow-session/{uiFlowSessionUuid}/build/info","href":"/6.x/docs/api/start-process/build-info-by-ui-flow-session"},{"title":"Start process by workspace, app, and process name","api":"POST {BASE_URL}/api/runtime/wks/{workspaceId}/app/{appId}/process-name/{processName}/start","href":"/6.x/docs/api/start-process/start-by-process-name"},{"title":"Start process by build id and process name","api":"POST https://admin.devmain.flowxai.dev/rtm/api/runtime/app/{appId}/build/{buildId}/process-name/{processDefinitionName}/start","href":"/6.x/docs/api/start-process/rest2"},{"title":"Start process and copy data from another instance","api":"POST {BASE_URL}/api/runtime/wks/{workspaceId}/app/{appId}/process-name/{processName}/start/copyDataFrom/{processInstanceId}","href":"/6.x/docs/api/start-process/start-with-copy-data"},{"title":"Start process from UI with resource definition and inherit values","api":"POST {BASE_URL}/api/runtime/wks/{workspaceId}/app/{appId}/rdi/{resourceDefinitionId}/start/inherit-from/{processInstanceId}","href":"/6.x/docs/api/start-process/start-process-rdi-inherit"}]},{"group":"Mocks","pages":[{"title":"Add new Kafka exchange mock","api":"POST {MOCK_ADAPTER_URL}/api/kafka-exchanges/","href":"/6.x/docs/api/mocks/add-kafka-mock"},{"title":"View Kafka Exchanges","api":"GET {MOCK_ADAPTER_URL}/api/kafka-exchanges","href":"/6.x/docs/api/mocks/view-kafka-exchanges"}]},{"group":"Storage","pages":[{"title":"List storage buckets","api":"GET {{documentUrl}}/internal/storage/buckets","href":"/6.x/docs/api/storage/list-buckets"},{"title":"List objects in a bucket","api":"GET {{documentURL}}/internal/storage/buckets/{BUCKET_NAME}","href":"/6.x/docs/api/storage/list-objects-in-buckets"},{"title":"Download a file","api":"GET documentURL/internal/storage/download","href":"/6.x/docs/api/storage/download-file"}]},{"title":"Clear cache","api":"POST {{baseUrlAdmin}}/api/internal/cache/clear","href":"/6.x/docs/api/clear-cache"},{"title":"Force platform rescan","api":"GET {baseUrl}/api/platform/discover","href":"/6.x/docs/api/force-rescan"},{"title":"MCP API Reference","href":"/6.x/docs/api/mcp-api-reference"}]}]},{"tab":"AI Platform","icon":"robot","pages":[{"title":"AI Platform","href":"/6.x/ai-platform/ai-in-flowx"}]},{"tab":"SDKs","icon":"code","pages":[{"title":"SDKs","href":"/6.x/sdks/sdks-overview"}]},{"tab":"Release notes","icon":"newspaper","pages":[{"title":"Release notes","href":"/release-notes/overview"}]},{"tab":"Cookbooks","icon":"utensils","pages":[{"title":"Cookbooks","href":"/6.x/cookbooks/overview"}]},{"tab":"Observatory","icon":"telescope","pages":[{"title":"Observatory","href":"/6.x/observatory/overview"}]},{"tab":"FlowX SaaS","icon":"cloud","pages":[{"title":"FlowX SaaS","href":"/6.x/docs/saas/saas-overview"}]},{"tab":"Setup guides","icon":"screwdriver-wrench","pages":[{"title":"Setup guides","href":"/6.x/setup-guides/migrate-to-flowx-ai-helm-chart"}]}]},{"version":"v5.9.x","default":true,"tag":"Latest LTS","pages":[{"title":"v5.9.x","href":"/5.9/docs/platform-deep-dive/integrations/flowx-database"}]},{"version":"v5.1.x","tag":"LTS","pages":[{"title":"v5.1.x","href":"/5.1/docs/platform-deep-dive/integrations/flowx-database"}]},{"version":"v4.7.x","tag":"Legacy","pages":[{"title":"v4.7.x","href":"/4.7.x/docs/platform-deep-dive/core-components/flowx-engine"}]},{"version":"v4.1.x","tag":"Legacy","pages":[{"title":"v4.1.x","href":"/4.1.x/docs/platform-deep-dive/core-components/flowx-engine"}]},{"version":"v3.x","tag":"Legacy","pages":[{"title":"v3.x","href":"/3.x/docs/platform-deep-dive/core-components/flowx-engine"}]}]},"basePath":"","title":"FlowX Database - FlowX.AI","buildId":"dpl_77Hw7ZuAABM8E3WMbYAf2ohQCr3v","deploymentId":"dpl_77Hw7ZuAABM8E3WMbYAf2ohQCr3v","dynamics":["10e4515597","07c022d89b","a74be98ba7"],"chunks":["BannerMarkdown-Br4Fx2_Z.js","dist-ptfS1uB_.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-rIpTdK8h.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","Frame-CNMfPRAk.js","DynamicMarkdown-D9cdbgj9.js","zoom-image-lightbox-CqbnXZMj.js","lightbox-handle-r17bVUz3.js"]}