Dans les versions précédentes de Mongoose (pour node.js), il y avait une option pour l'utiliser sans définir de schéma
var collection = mongoose.noSchema(db, "User");
Mais dans la version actuelle, la fonction "noSchema" a été supprimée. Mes schémas sont susceptibles de changer souvent et ne correspondent vraiment pas à un schéma défini, alors existe-t-il une nouvelle façon d'utiliser des modèles sans schéma dans la mangouste?
Réponses:
Je pense que c'est ce que tu cherches Mongoose Strict
option: strict
L'option stricte (activée par défaut) garantit que les valeurs ajoutées à notre instance de modèle qui n'ont pas été spécifiées dans notre schéma ne sont pas enregistrées dans la base de données.
Remarque: ne définissez pas sur false sauf si vous avez une bonne raison.
la source
thing.set(key, value)
carthing.key=value
ne fonctionne pas avec cette méthode, c'est-à-dire qu'elle ne persiste pas modifiée dans la base de données sinon.MySQL
:) Et je pense que la suggestion de Jonathan / selon Mongoose API Docs Note: Ne définissez pas sur false sauf si vous avez une bonne raison . Est absolument d'accord avec le contexte actuel (à peu près seulementNO-SQL
)En fait, le mode "Mixed" (
Schema.Types.Mixed
) semble faire exactement cela dans Mongoose ...il accepte un schéma moins , freeform objet JS - donc tout ce que vous pouvez jeter. Il semble que vous deviez déclencher manuellement des sauvegardes sur cet objet par la suite, mais cela semble être un compromis équitable.
la source
any
champ, elle a donc en fait un schéma. La meilleure réponse au PO est d'utiliserstrict: false
comme cette réponse l'indique.Hey Chris, regarde Mongous . J'avais le même problème avec la mangouste, car mes schémas changent extrêmement fréquemment en ce moment en cours de développement. Mongous m'a permis d'avoir la simplicité de Mongoose, tout en étant capable de définir et de modifier librement mes «schémas». J'ai choisi de créer simplement des objets JavaScript standard et de les stocker dans la base de données comme ceci
Bien plus simple que Mongoose, même si je pense que vous manquez des éléments de middleware sympas comme "pre". Je n'avais besoin de rien de tout ça. J'espère que cela t'aides!!!
la source
Voici la description des détails: [ https://www.meanstack.site/2020/01/save-data-to-mongodb-without-defining.html[1]
la source
Ce n'est plus possible.
Vous pouvez utiliser Mongoose avec les collections qui ont le schéma et le pilote de nœud ou un autre module mongo pour celles sans schéma.
https://groups.google.com/forum/#!msg/mongoose-orm/Bj9KTjI0NAQ/qSojYmoDwDYJ
la source