MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB - MySQL SUM (CASE WHEN) equivalente?


Eu concordaria com Rudu aqui, pois você deve tentar quebrar os detalhes em chaves de um documento mongo.

O documento pode conter um objeto como este:
details:
{
  viewed: true
  thumb_view: true
  web_viewed: false
  exported: true
  ...
}

Se você não reestruturar os dados, a consulta exigirá expressões regulares não enraizadas que não podem usar os recursos de indexação do MongoDB.

No entanto, independentemente de você decidir fazer isso ou não, você desejará usar a redução de mapa para isso. Você pode emitir itens que incluam os detalhes durante o mapa (seja processando-os com expressões regulares ou simplesmente emitindo as chaves de forma reestruturada) e somando-os na fase de redução.

Você pode ler mais sobre isso nos docs