Ofereça um alinhamento personalizado e tempo real entre a marca e a estratégia de descoberta de produtos com a fundação de dados e as funcionalidades avançadas de pesquisa do MongoDB.
Casos de uso: Intelligent Search, Visualização Única, Catálogo
Setores: Varejo
Produtos e ferramentas: MongoDB Atlas, MongoDB Atlas pesquisa, MongoDB Atlas Vector Search, MongoDB Node.js driver, MongoDB Python driver, MongoDB Voyage IA
Visão Geral da Solução
Em um mundo transbordado de produtos, coleções e mudanças constantes, você tem um desafio principal: como conectar a necessidade exclusiva de cada cliente a um catálogo em constante mudança com marcas que atendem a diferentes fins e objetivos de estratégia?
Para resolver isso, go além das vendas estáticas e adote a ampliação da marca, uma abordagem estratégica que aumenta a visibilidade, o engajamento e a conexão afetiva com as marcas certas, no momento certo e no contexto certo.
Nesta solução, você aprenderá como implementar uma estratégia de amplificação de marca usando dados e tecnologia para alinhar a intenção do cliente com suas metas de varejo.
Com o aplicativo Leafy Member — desenvolvido pelo MongoDB e pesquisa avançada— os associados da loja podem responder instantaneamente a qualquer solicitação do cliente, seja específica, baseada em preferências ou uma recomendação geral.
Cada pesquisa se torna uma única query personalizada. Os resultados permanecem relevantes para o consumidor e se alinham às prioridades da marca específicas da loja que os gerentes atualizam em tempo real.
figura 1. A amplificação de marcas em tempo real e as queries de usuários são alimentadas no pipeline de agregação do MongoDB, gerando recomendações inteligentes por meio das funcionalidades avançadas de pesquisa do MongoDB que impulsionam compras intencionais e reforçar experiências consistentes de marca.
Tudo isso é executado no MongoDB, entregando resultados consistentes, seguros e de alto desempenho.
Vamos explorar como funciona.
Abordagem do modelo de dados
Processo de design de esquema
Para evitar problemas de esquema e desempenho à medida que seu aplicativo cresce, comece com uma modelagem de dadossólida.
Nesta solução, você modela uma camada de dados unificada em torno de quatro coleções principais:
products: Catálogo de produtos (nomes, descrições, categorias, identificadores).inventory: Níveis de ações, dados de ações, métricas preditivas.stores: Armazenar metadados (nome, localização, detalhes operacionais).brandAmplification: Regras de impulso de marca/categoria por loja.
Siga este processo para implementar a amplificação da marca e dimensionar de forma confiável.
Identifique a carga de trabalho do seu aplicativo
Identifique suas operações mais frequentes.
Use suas principais queries para escolher índices eficazes e reduzir as chamadas de banco de dados.
Suponha que e-commerce e armazenar consumam os mesmos dados operacionais.
Conecte a intenção do cliente à estratégia de marca em tempo real e mantenha o estoque consistente em todos os canais.
Use a tabela a seguir para estimar as cargas de trabalho dos membros da Leafy e trate essa estimativa como sua linha de base para as prioridades de leitura/gravação:
em açãoTipo de queryColeção de destinoFrequênciaPriorityNotasDescoberta de produtos na loja. Encontre produtos que correspondam ao que o cliente solicita (pesquisa de texto/intenção/pesquisa híbrida), mostrando se ele está em ações nesta armazenar no momento. (50 armazenar)
Leia
Products,inventory~500K/dia
CRÍTICO
Fluxo principal do associado. Incorpore sinalizadores de resumo de inventário por loja em cada produto para evitar $lookup
Pesquisa de e-commerce. Pesquisa por especificação, intenção ou híbrido (6K produtos)
Leia
Products~1M/dia
CRÍTICO
Impulsiona a descoberta online e deve manter a baixa latência. Considere nós de pesquisa dedicados ou isolados por leitura
Aplique impulsos de marca para classificação
Leia
brandAmplification~300k/dia
Alta
Impulsionamentos de marca no nível da loja aplicados no momento da classificação; nenhuma atualizações do produto necessária
Atualizar inventário ativo e métricas preditivas (ingerir)
Escrever
inventory~700k/dia
CRÍTICO
Visão única dos sistemas de estoque de registro (lojas e armazéns). Escritas pequenas e frequentes
Encontre a loja alternativa mais próxima com estoque
Leia
inventory,stores~100k/dia
Baixo
Classificação geoespacial por distância
Configurar amplificação da marca (atualizar estratégia de impulso)
Escrever
brandAmplification>500/dia
Baixo
Reforços de marca por loja com escopo de categoria opcional; tempo de execução ajustável, nenhuma reescrita do produto.
Mapeie os relacionamentos do seu esquema
As cargas de trabalho que você identifica influenciam como você projeta seu esquema.
Na amplificação da marca, seu modelo de relacionamento determina a latência de leitura nos aplicativos Leafy Associate e e-commerce e afeta o custo das operações de gravação em sistemas de inventário.
Otimizar consultas
Para melhorar a descoberta de produtos na loja, incorpore
inventorySummary[]em produtos usando o padrão de incorporação. Essa abordagem retorna detalhes e a disponibilidade do produto em uma única operação de leitura e evita operações dispendiosas de $lookup. O trecho de código mostra um documento de exemplo na coleçãoproducts.{ "_id": "685bfe2b3d832cf7e1614577", "productName": "Onion", "brand": "Fresho", "price": { "amount": 31.02, "currency": "USD" }, "category": "Fruits & Vegetables", "subCategory": "Potato, Onion & Tomato", "aboutTheProduct": "Onion is a versatile vegetable used in salads and curries.", "embeddingText": "Onion | Fresho | 5 kg | Fruits & Vegetables | ...", "multimodalEmbeddingVector": [0.03, 0.12, 0.07, "..."], "inventorySummary": [ { "storeId": "store-019", "sectionId": "S01", "aisleId": "I11", "shelfId": "SH111", "inStock": true, "nearToReplenishmentInShelf": false }, { "storeId": "store-027", "sectionId": "S02", "aisleId": "I21", "shelfId": "SH213", "inStock": true, "nearToReplenishmentInShelf": true } ] } Para queries de visualização única do inventário operacional otimizado, mantenha os dados de inventário detalhados em uma coleção separada e referencie o produto. Armazene um documento por produto para manter uma exibição única em canais e lojas, e atualize as ações em um só lugar. O seguinte trecho de código mostra um documento de exemplo na coleção
inventory.{ "_id": "6863fc8057105b3a8ccb57cd", "productId": "685bfe2b3d832cf7e1614577", "storeInventory": [ { "storeId": "store-015", "storeName": "Trikasemmart - Chiang Mai", "coordinates": [98.985583, 18.7929], "shelfQuantity": 22, "backroomQuantity": 0, "inStock": true, "predictedStockDepletion": "2025-10-23", "nextRestock": "2025-10-19" }, { "storeId": "store-006", "storeName": "Vinyuvanichkul - Nakhon Ratchasima", "coordinates": [102.104829, 14.964336], "shelfQuantity": 27, "backroomQuantity": 49, "inStock": true, "nextRestock": "2025-10-21" } ], "updatedAt": "2025-10-17T00:00:01Z" } Para encontrar armazenar próximas com ações disponíveis, salve as coordenadas da armazenar em um ponto GeoJSON para executar queries geoespaciais. O seguinte trecho de código mostra um documento de exemplo na coleção
stores.{ "_id": "684aa28064ff7c785a568aca", "storeId": "store-001", "storeName": "Chaihirankarn, Bunlupong and Chomsri - Surat Thani", "location": { "type": "Point", "coordinates": [ 99.317989, 9.133786 ], "address": "3597 Methavorakul Tunnel Suite 886", "city": "Surat Thani" }, … } Consistência de dados
Use o Atlas Triggers para sincronizar os campos necessários de
inventorye manterproducts.inventorySummary[]consistente.Otimize as regras de classificação da marca em cada pesquisa
Aplique os impulsos da marca no momento da classificação e armazene as regras em
brandAmplification. Promova marcas estratégias sem reescrever os dados do produto.{ "_id": "68e43c6865c4a374ea78b4b0", "storeId": "store-015", "brandName": "Teamonk", "categories": ["Beverages", "Gourmet & World Food"], "boostLevel": 1, "effectiveFrom": "2025-10-01", "effectiveTo": "2025-10-31" } Indexação
Crie índices nos seus campos de query mais comuns. Consulte a seção "Construa a solução" para obter detalhes. Monitore e ajuste o uso do índice à medida que você dimensiona.
Arquiteturas de referência
Construa a amplificação da marca com quatro componentes principais:
Aplicativo principal do Leafy Associate: O aplicativo principal, criado com Next.js, lida com a IU e as interações do usuário. Ele se conecta ao MongoDB com drivers oficiais e chama o microsserviço Advanced Search.
Microsserviço Pesquisa Avançada: Um backend Python dedicado para lidar com a pesquisa. Ele usa pipelines de agregação MongoDB para pesquisa de texto, vetorial e híbrida e usa Voyage IA para incorporações.
Serviço de incorporação do Voyage IA: uma API externa que gera incorporações vetoriais para consultas de pesquisa semântica em tempo real.
MongoDB: utilize o MongoDB Atlas como sua camada de dados operacionais (ODL) para hospedar suas coleções.
Fluxo de arquitetura
Visualize o diagrama de arquitetura para entender como a solução de amplificação de marca opera.
figura 2. A arquitetura ilustra como o ODL do MongoDB integra o aplicativo Leafy Associate, o microsserviço de pesquisa avançada e as incorporações Voyage IA. Ele executa pesquisas de texto completo, vetoriais e híbridas em um único pipeline de agregação, combinando configuração de marca em tempo real e intenção do cliente em uma plataforma de dados unificada e moderna.
0. Siloed data
Os dados operacionais geralmente residem em silos, como ponto de venda (POS), planejamento de recursos empresariais (ERP) e marketing. Unifique-o para oferecer experiências consistentes em tempo real.
1. Armazene dados unificados na camada de dados operacionais (ODL) do MongoDB
O ODL usa todo o poder do modelo de documento flexível do MongoDB para armazenar dados estruturados, semiestruturados e não estruturados juntos em um só lugar.
A plataforma de dados moderna oferece desempenho, escalabilidade horizontal e funcionalidades avançadas. Ele permite integração rápida, queries de baixa latência e operações em tempo real dimensionadas.
Essa abordagem unificada mantém todos os sistemas – do e-commerce aos aplicativos na loja – executados com base nas mesmas informações confiáveis e atualizadas.
2. O associado da loja insere uma query de pesquisa
O associado do armazenar usa o aplicativo Leafy Associate para inserir uma query. Eles selecionam texto completo (MongoDB Atlas Search), intenção (pesquisa vetorial), ou híbrido (fusão de classificação ou fusão de pontuação).
Em paralelo: configuração da amplificação da marca em tempo real
Os gerentes de loja e o pessoal autorizado usam o aplicativo Leafy Associate para criar regras de impulso por loja na coleção brandAmplification, para uso de backend.
Ao configurar a amplificação da marca, eles podem observar em tempo real os metadados que mostram o número de produtos e quantos deles estão em cada categoria. Esta informação vem do estágio do pipeline $searchMeta.
3. e 4. O associado Leafy cria a solicitação de API
O aplicativo Leafy Associado compõe uma solicitação de pesquisa com contexto completo. Ele cria parâmetros de tempo de execução diretamente no front-end e recupera a configuração de marca ativa dessa loja do MongoDB. Envie a solicitação para o microsserviço Pesquisa Avançada.
POST /api/v2/search { "query": "green tea skin care", "storeObjectId": "684aa28064ff7c785a568aca", "option": 4, "page": 1, "page_size": 20, "weightVector": 0.5, "weightText": 0.5, "fusionMode": "rrf",// you can also use "scoreFusion" "brandAmplification": [ { "name": "Innisfree", "boostLevel": 1 }, { "name": "Olay", "boostLevel": 2, "categories": ["Face Care", "Skincare"] }, { "name": "The Body Shop", "boostLevel": 3 } ] }
5. Serviço de incorporações com Voyage IA
Quando o tipo de pesquisa é vetorial ou híbrida, o microsserviço gera incorporações de query do cliente com Voyage IA.
6. e 7. O microsserviço de Pesquisa Avançada cria o pipeline de agregação
O microsserviço Advanced Search cria o pipeline de agregação no tempo de execução e o executa no MongoDB. O microsserviço usa um único pipeline e uma única viagem de ida e volta para melhorar o desempenho e a eficiência.
Para relevância de texto usando $search, o pipeline aplica uma estrutura composta que combina cláusulas must, should e filter com correspondência difusa e aumentos de campo para refinar os resultados.
Para intenção semântica usando $vectorSearch, o pipeline compara a query do cliente com incorporações pré-computadas de dados do produto.
Na pesquisa híbrida, o microsserviço funde resultados de texto e vetor usando $rankFusion, que aplica fusão de classificação recíproca (RRF) baseada em classificação, ou $scoreFusion, que combina pontuações normalizadas com pesos ajustáveis no tempo de execução.
A extensão da marca melhora a relevância do resultado por meio de dois caminhos complementares:
Impulsionamento do texto antes da fusão (dentro de $search)
Injetar regras como compostas.
shouldcláusulas comscore. impulso para cada marca e categoria (opcional).
O microsserviço preserva o contexto de armazenar sem mesclar outras coleções usando $lookup filtrando diretamente no topo Products.inventorySummary[] com $filtro. Finalmente, ele produz uma resposta pronta para a IU com $facet, e retorna os documentos resultantes e a contagem total.
8. Confiabilidade, escalabilidade, segurança e consistência em tempo real
O MongoDB mantém alta disponibilidade com conjuntos de réplicas e dimensiona horizontalmente com a fragmentação. Use nós de pesquisa dedicados para leituras de baixa latência. Mantenha os dados consistentes em tempo real com Change Streams e Atlas Triggers. O MongoDB oferece segurança abrangente e de ponta a ponta por meio do controle de acesso integrado, do isolamento da rede e da criptografia de dados em repouso, em trânsito e em uso.
Construir a solução
Para reproduzir esta demonstração em seu próprio ambiente, siga estas etapas:
Criar um banco de dados no MongoDB Atlas
Entre no MongoDB Atlas e implante um cluster de camada grátis. Crie seu banco de dados denominado retail-unified-commerce ou atualize seu .env arquivo se você usar um nome diferente.
Clone o repositório da solução
Clone o repositório GitHub com o seguinte comando.
git clone https://github.com/mongodb-industry-solutions/retail-unified-commerce.git
Importar coleções de demonstração
Após clonar o repositório, navegue até a pasta com os dados de amostra.
cd retail-unified-commerce/docs/setup/collections
A pasta contém os arquivos JSON para importar para o MongoDB Atlas—um conjunto de dados de amostra de 500 produtos de mercearia com inventário em nível de loja e incorporações de vetores da Voyage IA:
inventory.json
produtos.json
stores.json
marcaAmplification.json
No Atlas, acesse Explorar Coleções. Crie cada coleção e clique em Adicionar dados para inserir seus documentos a partir dos arquivos JSON.
Configurar seus índices
Na coleção de produtos, crie:
Na coleção de armazenar, crie um índice geoespacial. O Leafy Member usa esse índice para exibir armazenar próximas. O índice não afeta a amplificação da marca.
Configurar a sincronização de inventário em tempo real (opcional)
Adicione o inventory_sync e o daily_inventory_simulation Atlas Triggers para integrar atualizações em tempo real em sua coleção de inventário. Esses recursos simulam transações ao vivo e mantêm os dados sincronizados com a coleção de produtos.
Adicionar variáveis de ambiente
Copie cada arquivo .env.example para .env nos diretórios frontend e advanced-search-ms.
Cole sua string de conexão do Atlas e adicione sua chave de API Voyage IA no arquivo advanced-search-ms/.env para habilitar a pesquisa baseada em incorporação.
VOYAGE_API_KEY=your_voyage_api_key
Para garantir comparações vetoriais precisas e significativas, use o mesmo fornecedor de incorporação para seus dados e para as consultas dos usuários. Se você trocar de fornecedor, deverá gerar novamente vetores, criar um novo índice, atualizar o .env arquivo com a nova chave de API e ajuste a implementação da porta de incorporação na camada de infraestrutura.
Construa e execute tudo com o Docker Compose
Verifique se você tem o Docker e o Docker Compose instalados e se está na raiz da pasta do projeto retail-unified-commerce. A partir daí, inicie o aplicativo usando o seguinte comando.
make build
Depois que o aplicativo estiver em execução:
Abra seu navegador e vá para http://localhost:3000 para usar o aplicativo de demonstração. Visualize o README para obter um guia passo a passo sobre como navegar pelo aplicativo Leafy Associado.
Visualize a documentação da API de microsserviço em http://localhost:8000/docs ou leia o README.
Veja a integridade do microsserviço em http://localhost:8000/health.
Você pode usar estes comandos para controlar seu sistema do Docker:
Interrompa seu aplicativo: interrompa todos os contêineres e remova imagens usando o comando abaixo:
make clean Visualizar logs: acompanhe a implantação do seu aplicativo e a movimentação de dados usando o seguinte comando:
make logs
Principais Aprendizados
Use o MongoDB como sua camada de dados operacionais (ODL): unifique dados de produtos, armazenar e inventário para habilitar uma estratégia de amplificação de marca consistente, mensurável e adaptável em todos os canais.
Crie queries dinâmicas no tempo de execução: use o pipeline de agregação do MongoDB para alinhar os resultados da pesquisa com a intenção de cada cliente e os objetivos de negócios da armazenar.
Implemente funcionalidades avançadas de pesquisa: Use o MongoDB Atlas Search e o Atlas Vector Search para combinar pesquisa de texto completo, vetorial e híbrida para fornecer recomendações sensíveis ao contexto e alinhadas à marca em tempo real.
Autores
Florencia Arin, MongoDB
Angie Guemes Estrada, MongoDB
Prashant Juttukonda, MongoDB
Daniel Jamir, MongoDB
Saiba mais
Plataformas de mídia de varejo personalizadas— alimentadas pelo MongoDB.
Visite MongoDB para o Varejo para descobrir como o MongoDB molda o setor por meio de soluções Inovadoras.
Aprenda como usar o MongoDB para criar uma visualização unificada que habilite a pesquisa inteligente e habilite os associados da loja nesta Biblioteca de soluções.
Para saber mais sobre ODL com MongoDB Atlas, leia o white paper The Operational Data Layer.