Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
estou desenvolvendo um site para escritores que irá possui um sistema de seguidores, curtidas e comentários. Minha intenção é fazer esse site utilizando o Mongodb + nodejs + vuejs.
Minha dúvida é com relação ao sistema de seguidores e curtidas. Seria viável desenvolver esse projeto utilizando o mongoDB ? Alguém pode me dar uma noção de qual seria a melhor maneira de organizar o esquema do banco de dados para tal finalidade ?
Agradeço a intenção mas realmente não me ajudou. Eu preciso de uma opinião no sentindo de me explicar se é viável produzir um site para publicação de textos que envolve sistema de curtidas e seguidores através do mongoDB.
Pelo que eu sei, o pessoal não costuma aconselhar a utilização do mongoDB quando existem muitos JOINS e relacionamentos entre tabelas. Mas não sei qual o limite desse muitos. Por isso eu preciso de alguem que trabalhe com mongodb para me dar essa luz.
abraço
Não vejo problema algum, no mongo você trabalha com referencias ou documentos embutidos.
Se precisar juntar varias collections use o operador de agregação $lookup "disponível a partir da v3.2"
>
14 horas atrás, Williams Duarte disse:
Não vejo problema algum, no mongo você trabalha com referencias ou documentos embutidos.
Se precisar juntar varias collections use o operador de agregação $lookup "disponível a partir da v3.2"
Obrigado William, era bem essa ideia q eu precisava. Mas vamos supor que um usuario siga uns 10 mil escritores, na hora de listar os usuarios q este membro segue o desempenho seria melhor que o mysql ?
Eu estou pensando em seguir essa estrutura:
1. Coleção users:
2. Coleção Seguindo:
3. Coleção Seguido:
O que acha desse esquema ? Me parece funcional, mas na prática ele funcionaria bem ?
abraço
Desculpe a demora, mongodb por ser um banco NoSql, sempre sera mais rápido que os relacionais.
Devido o mongodb, nao ser tão rigido, você faz qualquer coisa!
Agora, ele trás qualquer coisa rapidamente, desde que esteja com os indicies criados corretamente.
>
Em 02/08/2019 at 15:02, Marcosvn disse:
Eu estou pensando em seguir essa estrutura:
1. Coleção users:
2. Coleção Seguindo:
3. Coleção Seguido:
Acredito ser a melhor opção, é esta forma acima!
Outra maneira, mas seria incorporando no documento de usuario. Desta forma teria uma unica colection.
{
"_id":"60gd8nb530043e3c569af288",
"name":"William Duarte",
"follower"["30fd6bb530043e3c569af283","30fd6bb530043e3c669af283","30fd6bb530043e3c569af283"],
"following":["40fd6bb530043e3c569af286","49fd6bb530043e3c566af45o"]
}
>
Em 15/08/2019 at 14:12, Williams Duarte disse:
{
"_id":"60gd8nb530043e3c569af288",
"name":"William Duarte",
"follower"["30fd6bb530043e3c569af283","30fd6bb530043e3c669af283","30fd6bb530043e3c569af283"],
"following":["40fd6bb530043e3c569af286","49fd6bb530043e3c566af45o"]
}
Essa maneira que vce mencionou me parece bem mais adequado. Vou fazer nesse esquema. Muito obrigado pela força.
Abraço
Só me tira mais uma dúvida. Supondo que meus documentos no mongodb irão armazenar informação de seguidores, comentários e likes, em um dado momento eu não poderia atingir o limite de 16mb por tamanho de documento? Numa hipotese onde possa existir milhoes de seguidores, curtidas e comentários, qual seria a melhor abordagem para não correr esse risco ?
Acredito que sim, mas comentarios e likes estaria relacionado a outras colecções e não a uma collection Person por exemplo.
Sobre comentários de uma lida aqui.
Mas seu exemplo seria bem melhor, ai usa
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/
Teria consitencia dos dados, e a nova versão do mongo:latest da suporte a varias operações existentes em banco relacionais, como por exemplo Transações, que antes era inexistente, nas <= 3.*, e joins é moleza!
Marcosvn
Retirado de pesquisa google: MongoDB é um software de banco de dados orientado a documentos livre, de código aberto e multiplataforma, escrito na linguagem C++. Classificado como um programa de banco de dados NoSQL, o MongoDB usa documentos semelhantes a JSON com esquemas...
Leia o links abaixo para saber qual Banco de Dados usar.
MySQL vs SQL Server vs MongoDB vs PostgreSql
Eu apenas recomendo ter em mente a forma de como você ira construir sua aplicação sobre o Banco de Dados e você precisa levar em conta qual Banco de Dados possui mais informações na internet para soluções de dúvidas e problemas pois isso facilita e muito sua construção quando você encontrar uma barreira, qual tem melhor Custo Beneficio e qual ira responder melhor a sua aplicação.
Eu uso o MySQL com PHP com ASP e com Java e no meu trabalho uso DB2 com COBOL e Java.
Se a minha resposta for útil não esqueça de agradecer e votar positivo.
Espero ter ajudado de alguma forma.
AttFelipe Guedes Coutinho