Nas versões anteriores do Mongoose (para node.js), havia uma opção de usá-lo sem definir um esquema
var collection = mongoose.noSchema(db, "User");
Mas na versão atual a função "noSchema" foi removida. É provável que meus esquemas mudem com frequência e realmente não se encaixam em um esquema definido, então há uma nova maneira de usar modelos sem esquema no mangusto?
Respostas:
Acho que é isso que você está procurando Mongoose Strict
opção: estrito
A opção estrita, (habilitada por padrão), garante que os valores adicionados à nossa instância de modelo que não foram especificados em nosso esquema não sejam salvos no banco de dados.
Nota: Não defina como falso a menos que você tenha um bom motivo.
fonte
thing.set(key, value)
porquething.key=value
não funciona com este método, ou seja, ele não persiste alterado no banco de dados de outra forma.MySQL
:) E acho que a sugestão do Jonathan / de acordo com o Mongoose API Docs Nota: Não defina como falso a menos que tenha um bom motivo . Está absolutamente bem com o contexto atual (cerca de apenasNO-SQL
)Na verdade, o modo "Mixed" (
Schema.Types.Mixed
) parece fazer exatamente isso no Mongoose ...ele aceita um sem esquema , de forma livre JS objeto - de modo que você pode jogar nele. Parece que você tem que acionar salvamentos naquele objeto manualmente depois, mas parece uma troca justa.
fonte
any
campo, de modo que de fato tem um esquema. A melhor resposta ao OP é usarstrict: false
como esta resposta diz.Ei, Chris, dê uma olhada em Mongous . Eu estava tendo o mesmo problema com o mangusto, pois meus esquemas mudam com extrema frequência agora em desenvolvimento. Mongous me permitiu ter a simplicidade de Mongoose, enquanto era capaz de definir e alterar vagamente meus 'esquemas'. Eu escolhi simplesmente construir objetos JavaScript padrão e armazená-los no banco de dados assim
Muito mais simples do que o Mongoose, embora eu acredite que você perca algumas coisas legais de middleware como "pré". Eu não precisava de nada disso. Espero que isto ajude!!!
fonte
Aqui está a descrição dos detalhes: [ https://www.meanstack.site/2020/01/save-data-to-mongodb-without-defining.html][1]
fonte
Não é mais possível.
Você pode usar o Mongoose com as coleções que têm esquema e o driver de nó ou outro módulo mongo para aqueles sem esquema.
https://groups.google.com/forum/#!msg/mongoose-orm/Bj9KTjI0NAQ/qSojYmoDwDYJ
fonte