In früheren Versionen von Mongoose (für node.js) gab es eine Option, um es zu verwenden, ohne ein Schema zu definieren
var collection = mongoose.noSchema(db, "User");
In der aktuellen Version wurde die Funktion "noSchema" jedoch entfernt. Meine Schemata ändern sich wahrscheinlich häufig und passen wirklich nicht zu einem definierten Schema. Gibt es also eine neue Möglichkeit, schemalose Modelle in Mungos zu verwenden?
Antworten:
Ich denke, das ist es, wonach du suchst. Mongoose Strict
Option: streng
Die strikte Option (standardmäßig aktiviert) stellt sicher, dass zu unserer Modellinstanz hinzugefügte Werte, die nicht in unserem Schema angegeben wurden, nicht in der Datenbank gespeichert werden.
Hinweis: Setzen Sie nicht auf false, es sei denn, Sie haben einen guten Grund.
quelle
thing.set(key, value)
weilthing.key=value
diese Methode nicht funktioniert, dh sie bleibt ansonsten nicht in der Datenbank geändert.MySQL
:) Und ich denke, Jonathan Vorschlag / gemäß Mongoose API Docs Hinweis: Setzen Sie nicht auf false, es sei denn, Sie haben einen guten Grund . Ist absolut in Ordnung mit dem aktuellen Kontext (ungefähr nurNO-SQL
)Tatsächlich
Schema.Types.Mixed
scheint der "Mixed" ( ) -Modus genau das in Mongoose zu tun ...es nimmt ein Schema-weniger , Freiform - JS - Objekt - so , was Sie an ihn werfen können. Es scheint, dass Sie das Speichern dieses Objekts anschließend manuell auslösen müssen, aber es scheint ein fairer Kompromiss zu sein.
quelle
any
Feld, sodass tatsächlich ein Schema vorhanden ist. Eine bessere Antwort auf das OP ist zu verwenden,strict: false
wie diese Antwort sagt.Hey Chris, sieh dir Mongous an . Ich hatte das gleiche Problem mit Mungo, da sich meine Schemata gerade in der Entwicklung extrem häufig ändern. Mongous erlaubte mir, die Einfachheit von Mongoose zu haben, während ich meine 'Schemata' lose definieren und ändern konnte. Ich habe mich dafür entschieden, einfach Standard-JavaScript-Objekte zu erstellen und sie so in der Datenbank zu speichern
Weitaus einfacher als Mongoose, obwohl ich glaube, dass Sie einige coole Middleware-Sachen wie "pre" verpassen. Ich brauchte nichts davon. Hoffe das hilft!!!
quelle
Hier ist die Detailbeschreibung: [ https://www.meanstack.site/2020/01/save-data-to-mongodb-without-defining.html[1]
quelle
Es ist nicht mehr möglich.
Sie können Mongoose mit den Sammlungen verwenden, die ein Schema und den Knotentreiber haben, oder mit einem anderen Mongo-Modul für diese schemalosen.
https://groups.google.com/forum/#!msg/mongoose-orm/Bj9KTjI0NAQ/qSojYmoDwDYJ
quelle