Jump to content
Marcosvn

Sistema de seguidores e curtidas com MongoDB

Recommended Posts

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 ?

Share this post


Link to post
Share on other sites

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.

 

Att
Felipe Guedes Coutinho

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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"

 

Share this post


Link to post
Share on other sites
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:
- userid
- username
- userpass

2. Coleção Seguindo:
- userid
- [array Userid]


3. Coleção Seguido:
- userid
- [array Userid]

 

O que acha desse esquema ? Me parece funcional, mas na prática ele funcionaria bem ?

 

abraço

Share this post


Link to post
Share on other sites

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:
- userid
- username
- userpass

2. Coleção Seguindo:
- userid
- [array Userid]


3. Coleção Seguido:
- userid
- [array Userid]

 


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"]
}

 

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites

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 ?

Share this post


Link to post
Share on other sites

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!

https://docs.mongodb.com/manual/core/transactions/
 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By User386_Denilson
      e aí pessoal, blz?
       
      Vou colocar aqui minha duvida...
      Tenho um projeto em net Core 2.2, usadon mongodb. Tenho uma collection antiga (Pessoas) que o pessoal foi alimentado com muita coisa, e agora estou organizando em pessoa fisica e pessoa juridica.
      Eu faço a busca usando o filtro por id:
      public async Task<PessoaDadosCad> GetPessoaFisica(string id) { var pessoa = await passaiMongoCollection.FindAsync(pessoa => pessoa.Id == id); var data = JsonConvert.SerializeObject(await pessoa.FirstOrDefaultAsync()); PessoaDadosCad simplifiedPerson = JsonConvert.DeserializeObject<PessoaDadosCad>(data.ToString()); return simplifiedPerson; }  
      (pessoa => pessoa.Id == id) ao executar esse comando de busca, a classe vinculada é Pessoa.
      Eu queria ver com vcs se tem como não vincular uma classe no momento da busca??
      Obrigado
    • By brunopeople
      Eu estou fazendo um projeto de CRUD consumindo uma API Restfull com banco de dados mongoDB para uma teste de vaga de emprego, eu fiz a aplicação e ela roda sem erros nenhum, porém ao adicionar o registro do post ele não está adicionando o registro no banco de dados? Eu não consegui realmente encontrar o erro do por que isto está acontencendo ou por que? eu gostaria muito de alguém me ajudasse. 
       
      https://github.com/brunopeople/Teste-RedFox-Full-Stack
    • By srawolf
      Eu tenho uma tabela, essa tabela vem com o campo nome e matricula do banco de dados (fiz em mongodb), eu ia colocar uns inputs para notas e ser enviado no text do email, mas ele repete a primeira linha da tabela
      Estou usando, node.js, nodemailer, mongodb
      o email não aparece na tela, so no banco de dados e eu puxo ele quando vou enviar o email, como eu posso identificar esses inputs para que cada email receba sua respectiva nota?
    • By Tadeu Neto
      Boa tarde, estou tentando criar uma pesquisa no mongo em que ao digitar uma palavra ele pesquise tanto por palavras acentuadas quanto sem ex: água, agua, café, cafe, cafee, joão, joao e assim vai. 
       
      Já vi algumas coisas mais não consegui ter o resultado necessário, pode ser por minha falta de experiência.
       
      Obrigado pela ajuda.
    • By osmar15
      Olá pessoal !
       
      Gostaria de saber se algum de vocês possui algum conhecimento a respeito de migração entre bancos de dados...
       
      Meu objetivo seria definir por exemplo, como uma tabela com relacionamento N para N, 1 para N e etc ... se estruturaria em um ou mais documentos do MongoDB?
       
      São para fins educacionais, que envolvem meu TCC, não possuo nenhuma base relacional especifica para ser tratado em cima, seria de uma forma mais abrangente mesmo, o único requisito é que seja feita essa migração para o MongoDB.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.