En versiones anteriores de Mongoose (para node.js) había una opción para usarlo sin definir un esquema
var collection = mongoose.noSchema(db, "User");
Pero en la versión actual se ha eliminado la función "noSchema". Es probable que mis esquemas cambien a menudo y realmente no encajen con un esquema definido, entonces, ¿hay una nueva forma de usar modelos sin esquema en mangosta?
Respuestas:
Creo que esto es lo que estás buscando Mongoose Strict
opción: estricta
La opción estricta, (habilitada por defecto), asegura que los valores agregados a nuestra instancia de modelo que no fueron especificados en nuestro esquema no se guarden en la base de datos.
Nota: No establezca el valor falso a menos que tenga una buena razón.
fuente
thing.set(key, value)
porquething.key=value
no funciona con este método, es decir, no persiste cambiado en la base de datos de otra manera.MySQL
:) Y creo que la sugerencia de Jonathan / según Documentos de API de Mongoose Nota: No establezcas como falso a menos que tengas una buena razón . Está absolutamente bien con el contexto actual (solo aproximadamenteNO-SQL
)En realidad, el modo "Mixto" (
Schema.Types.Mixed
) parece hacer exactamente eso en Mongoose ...acepta un objeto JS de forma libre y sin esquema , por lo que cualquier cosa que pueda lanzarle. Parece que tienes que activar los guardados en ese objeto manualmente después, pero parece una compensación justa.
fuente
any
campo, por lo que de hecho tiene un esquema. La mejor respuesta al OP es usarstrict: false
como dice esta respuesta.Hola Chris, échale un vistazo a Mongous . Tenía el mismo problema con la mangosta, ya que mis esquemas cambian con mucha frecuencia en este momento en el desarrollo. Mongous me permitió tener la simplicidad de Mongoose, al mismo tiempo que podía definir y cambiar libremente mis 'esquemas'. Elegí simplemente construir objetos JavaScript estándar y almacenarlos en la base de datos de esa manera
Mucho más simple que Mongoose, aunque creo que te pierdes algunas cosas interesantes de middleware como "pre". Aunque no necesitaba nada de eso. ¡¡¡Espero que esto ayude!!!
fuente
Aquí está la descripción de los detalles: [ https://www.meanstack.site/2020/01/save-data-to-mongodb-without-defining.html][1]
fuente
Ya no es posible.
Puede usar Mongoose con las colecciones que tienen esquema y el controlador de nodo u otro módulo mongo para aquellos sin esquema.
https://groups.google.com/forum/#!msg/mongoose-orm/Bj9KTjI0NAQ/qSojYmoDwDYJ
fuente