Overview
Collection serves as a managed database service integrated directly into the Prisme.ai platform:Data Storage
Store structured data in document collections
Query Capabilities
Retrieve and filter data with powerful query options
Data Management
Create, update, and delete records with simple operations
Integration Ready
Seamlessly connect with automations and workflows
Release Note: Collection with PostgreSQL
With this new release, Collection instructions become compatible with postgresql database and the same MongoDB queries / updates syntax as usual.This also brings performance improvements and new features, but with a few breaking changes and mongodb/postgres subtle differences to note.
Schema Configuration
Collections now require explicit schema definitions in the application config.
Cross-Database Compatibility
Collections can now work across MongoDB and PostgreSQL, with some differences detailed below.
Breaking Changes
Some MongoDB options were deprecated or modified. See below for full details.
New Features
Support for new aggregate instruction across both MongoDB and PostgreSQL. Existing distinct improved with new features
Breaking Changes
These breaking changes may affect your existing MongoDB-based Collections.
Please update your configuration and code accordingly.
Please update your configuration and code accordingly.
1
Connection Pooling
- Since mongodb requests were previously executed by prismeai-functions microservice, the total number of mongodb clients opened were directly tied to the prismeai-functions replicas number & scaling
- Now that collections clients are only opened from
prismeai-runtime(which supports multithreading),minPoolSizeandmaxPoolSizemust be scaled relative toRUNNER_MAX_THREADS. - Example: if
RUNNER_MAX_THREADS=2, then divide your pool sizes by 2.
2
Required permissions
- The new collection schemas enforcement now requires 3 more mongodb user permissions (& their equivalent SQL) :
- listCollections, listIndexes, dropIndexes
3
Update Instructions
Collection.updateManyno longer supportsoptions.upsertCollection.updateOnedeprecatesoptions.upsert: Use the dedicatedCollection.upsertinstruction instead.Collection.updateOneandCollection.updateManyno longer supportsoptions.replace.
4
Allowed Update Operators
Only the following MongoDB update operators are supported: $push, $set, $inc, $addToSet, $pull
5
Safer Deletes and Updates
updateOne,updateMany,deleteOneanddeleteManynow raise an error if the query is empty/undefined.- To allow matching all documents, use the
overrideSecurity: trueparameter.
6
Schema Enforcement
- All collections must now define collectionName and properties inside their app config, see an example config below.
- Queries referencing unknown fields will raise errors.
- Insert/update operations with unknown fields will also fail.
- All properties defined in the schema will now be initialized to null and returned as-is by
findif they were not initialized (and nullable)
π New Features
- Aggregate
- Distinct
Use aggregate instruction to easily calculate sums, average or count optionally groupped by a column, on both MongoDB and PostgreSQL collections.
Key Features
- Document Storage
- Query Capabilities
- Data Manipulation
- Advanced Features
Store flexible document structures:
- Schema enforcement: Ensure your data respect a predefined schema
- Nested Data Support: Store complex, hierarchical data
- Data Types: Support for strings, numbers, booleans, arrays, objects, dates
- Automatic Indexing: Optimized for fast retrieval
How Collection Works
Collection provides a MongoDB-compatible interface integrated directly into the Prisme.ai platform:1
Collections Organization
Data is organized into collections, similar to tables in relational databases:
- Each collection contains related documents
- Collections are created automatically when used
- No schema definition is required
- Each workspace has its own collection namespace
2
Document Structure
Documents are stored as JSON-like objects:
- Each document has a unique
_idfield - Documents can have any structure
- Fields can contain various data types
- Nested objects and arrays are supported
- Documents in the same collection can have different structures
3
Data Operations
Operations are performed through simple, intuitive methods:
- Commands follow MongoDB syntax and patterns
- Results are returned in standard formats
- Operations are executed in a secure environment
- Performance is optimized for common use cases
4
Integration
Collection integrates with the rest of the Prisme.ai ecosystem:
- Direct usage in automations
- Connection to AI agents through tools
- Data exchange with other platform components
- Role-based access control
βοΈ MongoDB vs PostgreSQL Differences
- $in Operator
- NULL vs $ne
- Array Queries
- Array order on updates
- Nested JSON Array Queries
- Upserts
-
MongoDB:
$in: []matches nothing. -
PostgreSQL:
$in: []matches everything!\Always check your input array before running$inqueries on PostgreSQL.
π οΈ Configuring a Collection Schema
Defining a schema is now mandatory for collections in order to enforce validation and ensure cross-database compatibility.
- The array type only supports text arrays
- Use json type for both objects and arrays of objects
- Non-nullable properties must be set on inserts and upserts. Otherwise the given query will fail
Available property types include:
string, text, date, time, datetime, number, double, float, integer, decimal, boolean, uint8array, array, enum, enumArray, json, blob, timeBasic Operations
Letβs explore the core operations you can perform with Collection:Inserting Data
Inserting Data
Add documents to a collection:The operation returns information about the inserted documents, including their assigned
_id values.Finding Data
Finding Data
Retrieve documents from a collection:These operations allow you to retrieve documents with precise filtering and control over the results.
Updating Data
Updating Data
By default, updates use mongo But you can also use the MongoDB operators you want :These operations enable precise updates to documents, including field modifications, additions, and array operations.
$set operator to only update given fields without removing other fields already existing in the matched record :Upserts
Upserts
Upserts allow you to create or update a document if it already exists, based on a list of properties (onConflictFields) that must stay unique accros the collection :onInsertValues is optional and let you specify data that will be only included upon document creation but not on update.
With PostgresSQL, a compound unique index is required for all onConflictFields.
Deleting Data
Deleting Data
Remove documents from a collection:These operations allow you to remove documents based on specific criteria.
Distinct values
Distinct values
Easily retrieve all distinct values for a column with their counts and sorting :
Aggregation Operations
Aggregation Operations
Perform complex data analysis:
Find pagination & fields selection
Find pagination & fields selection
Pagination is enforced by returning only the first 50 matching entries by default. This number is configurable with options.limit.
You can then choose which page you are interested in using options.page, starting at 1 for the first page :Alternatively, you can use options.skip to finely select the matching page :You can also limit the document properties you will have in return :
You can then choose which page you are interested in using options.page, starting at 1 for the first page :
Advanced Features
Collection includes several advanced features that enable sophisticated data management:Indexing
Create indexes to optimize query performance:
- Single-field indexes
- Compound indexes
- Text indexes for full-text search
- Unique indexes for constraint enforcement
Transactions
Ensure data consistency with multi-document transactions:
- Atomic operations across multiple documents
- Rollback on error
- Consistent reads within a transaction
- Isolation levels
Geospatial
Store and query location data:
- GeoJSON format support
- Proximity queries
- Geospatial indexing
- Area containment queries
Schema Validation
Optional schema validation for data consistency:
- JSON Schema validation
- Custom validation rules
- Validation actions (error or warning)
- Field restriction
Common Use Cases
Collection enables a wide range of use cases:User Management
Store and manage user information:
- User profiles
- Preferences
- Activity history
- Authentication data
Content Management
Manage structured content:
- Articles and posts
- Product information
- Media metadata
- Categorization and tagging
Workflow State
Track process and workflow state:
- Status tracking
- Approval flows
- Stage information
- Audit history
Data Collection
Collect and store form submissions:
- Survey responses
- Application data
- Contact requests
- Registration information
Integration with Prisme.ai Products
Collection works seamlessly with other Prisme.ai products:- AI Knowledge
- AI Builder
- Custom Code
- API Integrations
Enhance knowledge bases with Collection:
- Store metadata about knowledge base documents
- Track usage patterns and popular queries
- Maintain user feedback on responses
- Save and manage test results
Example: Contact Management System
Hereβs an example of using Collection to build a contact management system:1
Define Data Structure
Plan your data organization:
- Contacts collection for individual contacts
- Companies collection for organization information
- Interactions collection for communication history
- Tags collection for categorization
2
Create Storage Operations
Implement data storage automations:
3
Implement Query Operations
Create data retrieval automations:
4
Create User Interface
Build a UI to interact with your data:
- Contact list view
- Contact detail view
- Add/edit contact forms
- Search and filtering
5
Implement Business Logic
Add specialized functionality:
- Duplicate detection
- Contact merging
- Import/export capabilities
- Notification system
Best Practices
Follow these recommendations to get the most from Collection:Data Modeling
Data Modeling
Design your data structure effectively:
- Use descriptive collection names
- Choose between embedding and referencing based on access patterns
- Keep document size reasonable (under 1MB when possible)
- Normalize data when it changes frequently
- Denormalize data to optimize common queries
- Use consistent field names across collections
Query Optimization
Query Optimization
Optimize your queries for better performance:
- Create indexes for frequently queried fields
- Write specific queries that use indexes
- Limit the number of documents returned
- Avoid complex regex patterns when possible
- Use aggregation for data processing, not application code
Data Validation
Data Validation
Ensure data quality and consistency:
- Validate input data before storage
- Consider using schema validation for critical collections
- Implement application-level validation for complex rules
- Use unique indexes to prevent duplicates
- Include creation and update timestamps
- Maintain audit trails for sensitive data
Security Considerations
Security Considerations
Protect your data with proper security practices:
- Apply proper access controls
- Validate input to prevent injection attacks
- Donβt store sensitive data without encryption
- Implement appropriate backup strategies
- Audit access to sensitive collections
- Follow the principle of least privilege
Limitations and Considerations
When using Collection, be aware of these considerations:- Document Size: Individual documents are limited to 16MB
- Nested Depth: Deep nesting of objects can impact performance
- Query Complexity: Very complex queries may have performance implications
- Transaction Limits: Transactions have time and size limitations
- Indexing Overhead: Indexes improve query performance but increase storage requirements and write overhead
- Consistency Model: Collection uses an eventually consistent model in some scenarios