
Carlos Martinez
Preguntaen el caso de los esquemas, como se pueden definir mejor?, el profesor los definió pero no es que se usen obligatoriamente no? osea lo digo porque, al momento de crear un nuevo curso lo hace mediante postman y la estructura del json viene definida como se había acordado anteriormente, pero si uno quiere, la puede cambiar sin problemas no?
mi pregunta es, hay alguna manera de poner un poco de “orden” al momento de definir cual será nuestra estructura(esquema) de los documentos??, tal vez con un
example.json
todo esto lo pregunto porque estaba viendo un tutorial en youtube en donde en vez de usar el modulo nativo de mongodb para nodejs usaban una librería llamada
mongoose
y la duda me surge debido a que , ¿ no se supone que mongodb es una base de datos sin esquemas ? , en la cual los documentos lo podemos ir guardando con la estructura que queramos no importa si la cambiamos, asi que, para retomar mi pregunta… , cual sería la mejor manera de mantener o por lo menos tratar de mantener un esquema para cierto tipo de documentos json ? , de tal manera que yo en un futuro u otros desarrolladores puedan ver facilmente como estan estructurados los documentos.
espero alguien me saque de dudas jeje, saludos y gracias de antemano
Johan Avila
Justamente lo que quiere lograr mongo es no iponerte un esquema para que puedas crecer tu app si asi lo requieres, mongo es una bases de datos muy flexible pero no por eso es meter datos a lo loco. Para evitar una sopa de documentos y collections puedes agregar un schema desde otra capa de tu aplicacion, de hecho es muy buena practica manejar mongo con un schema en otra capa de tu app

Marcos Mella
Estoy con la misma incertidumbre, leyendo información de otros sitios, con node.js el 90% de los casos usa mongoose.. así que supongo voy por ese lado, implementando schema para que otros desarrolladores sepan de la estructura a simple vista.

Albert Ramirez
Hola Carlos, es una buena pregunta. Una forma de "poner un poco de orden" en MongoDB de forma nativa es empleando una funcionalidad que se encuentra disponible desde Mongo 3.6 llamada schema validation
De esa manera se pueden definir campos obligatorios dentro de un documento a nivel de colección, ahora MongoDB es schema less debido a que no tienes la obligación de definir un schema para guardar tus documentos sin embargo si tu caso de uso lo requiere puedes hacerlo.

Anibal Rojas
Muy interesante tu pregunta. Si tienes las necesidad de poner un "poco de orden" entonces muy posiblemente en realidad la solución a tu problema es un RDBMS, tecnología muy sólida con muchísimos años en el mercado. Y si una parete de tu problema aún requiere de schemaless documents puedes utilizar soporte para columnas JSON como por ejemplo lo ofrece PostgreSQL, con lo que puedes incluso definir índices sobre el las propiedas del documento para optimizar queries.