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

Chaves estrangeiras no mongo?


Como projetar uma tabela assim no mongodb?

Primeiro, para esclarecer algumas convenções de nomenclatura. MongoDB usa collections em vez de tables .

Eu acho que não há chaves estrangeiras!

Pegue o seguinte modelo:
student
{ 
  _id: ObjectId(...),
  name: 'Jane',
  courses: [
    { course: 'bio101', mark: 85 },
    { course: 'chem101', mark: 89 }
  ]
}

course
{
  _id: 'bio101',
  name: 'Biology 101',
  description: 'Introduction to biology'
}

Claramente a lista de cursos de Jane aponta para alguns cursos específicos. O banco de dados não aplica nenhuma restrição ao sistema (ou seja:restrições de chave estrangeira ), portanto, não há "exclusões em cascata" ou "atualizações em cascata". No entanto, o banco de dados contém as informações corretas.

Além disso, o MongoDB possui um padrão DBRef que ajuda a padronizar a criação dessas referências. Na verdade, se você der uma olhada nesse link, ele tem um exemplo semelhante.

Como posso resolver esta tarefa?

Para ser claro, o MongoDB não é relacional. Não existe uma "forma normal" padrão. Você deve modelar seu banco de dados de acordo com os dados armazenados e as consultas que pretende executar.