Skip to main content
MongoDB repository patterns and data access methods used in the Weam AI Node.js backend for structured data operations.

Usage Pattern

All repository methods follow consistent patterns:
  1. Import the required repository module
  2. Call the method with appropriate parameters
  3. Handle the returned data

Repository Modules

CompanyRepository

fetchCompanyData(companyId)

Retrieves company metadata from MongoDB using company ID. Parameters:
  • companyId: string - Unique company identifier
const CompanyRepository = require('./repositories/CompanyRepository');

const companyData = await CompanyRepository.fetchCompanyData('company123');
console.log(companyData);
Returns: Company document object with all metadata

ChatSessionRepository

fetchChatSessionData(sessionId)

Retrieves chat session data from MongoDB using session ID. Parameters:
  • sessionId: string - Unique chat session identifier
const ChatSessionRepository = require('./repositories/ChatSessionRepository');

const sessionData = await ChatSessionRepository.fetchChatSessionData('session456');
console.log(sessionData);
Returns: Chat session document with messages and metadata

LLMModelRepository

fetchCompanyModelData(apiKeyId)

Retrieves LLM configuration data using API key identifier. Parameters:
  • apiKeyId: string - API key identifier
const LLMModelRepository = require('./repositories/LLMModelRepository');

const llmConfig = await LLMModelRepository.fetchCompanyModelData('apikey-abc');
console.log(llmConfig);
Returns: Model configuration including API credentials and settings

EmbeddingModelRepository

fetchEmbeddingModelData(apiKeyId)

Fetches embedding model configurations and vector settings. Parameters:
  • apiKeyId: string - API key identifier
const EmbeddingModelRepository = require('./repositories/EmbeddingModelRepository');

const embeddingConfig = await EmbeddingModelRepository.fetchEmbeddingModelData('apikey-abc');
console.log(embeddingConfig);
Returns: Embedding model configuration with dimension and provider details

FileRepository

fetchFileData(fileId)

Retrieves file metadata for user or system files. Parameters:
  • fileId: string - Unique file identifier
const FileRepository = require('./repositories/FileRepository');

const fileData = await FileRepository.fetchFileData('file-123');
console.log(fileData);
Returns: File metadata including storage location and processing status

ChatMemberRepository

fetchChatMemberData(chatSessionId)

Fetches chat participant data for session management. Parameters:
  • chatSessionId: string - Chat session identifier
const ChatMemberRepository = require('./repositories/ChatMemberRepository');

const memberData = await ChatMemberRepository.fetchChatMemberData('chat-789');
console.log(memberData);
Returns: Array of chat members with roles and permissions

AgentRepository

fetchAgentData(agentId)

Retrieves agent configuration including system prompts and settings. Parameters:
  • agentId: string - Agent identifier
const AgentRepository = require('./repositories/AgentRepository');

const agentData = await AgentRepository.fetchAgentData('agent-001');
console.log(agentData);
Returns: Agent configuration with prompts, tools, and metadata

DocumentRepository

fetchDocumentData(documentId)

Retrieves document metadata and storage information. Parameters:
  • documentId: string - Document identifier
const DocumentRepository = require('./repositories/DocumentRepository');

const documentData = await DocumentRepository.fetchDocumentData('doc-123');
console.log(documentData);
Returns: Document metadata including chunks and embedding status

VectorRepository

searchVectors(query, options)

Performs vector similarity search in Pinecone. Parameters:
  • query: string - Search query text
  • options: object - Search configuration
const VectorRepository = require('./repositories/VectorRepository');

const vectors = await VectorRepository.searchVectors('user query', {
  topK: 5,
  filter: { brainId: 'brain123' }
});
console.log(vectors);
Returns: Array of relevant document chunks with similarity scores
I