Node.js Mongodb和Express.js:基于模型自动创建数据库和集合

Node.js Mongodb和Express.js:基于模型自动创建数据库和集合,node.js,mongodb,express,orm,nosql,Node.js,Mongodb,Express,Orm,Nosql,在Hibernate中,我们可以使用实体类自动创建数据库和表(SQL数据库)。是否可以使用Mongodb(NoSql)在Express.js中实现相同的功能。只需运行本地Mongodb服务器并启动应用程序。 当mongoose尝试连接到应用程序中提到的数据库时,如果没有数据库,它会创建数据库。此外,保存文档时,会自动创建集合 这将在第一次运行时创建数据库 const mongoose = require('mongoose'); mongoose.connect(process.env.DB_H

在Hibernate中,我们可以使用实体类自动创建数据库和表(SQL数据库)。是否可以使用Mongodb(NoSql)在Express.js中实现相同的功能。

只需运行本地Mongodb服务器并启动应用程序。 当mongoose尝试连接到应用程序中提到的数据库时,如果没有数据库,它会创建数据库。此外,保存文档时,会自动创建集合

这将在第一次运行时创建数据库

const mongoose = require('mongoose');
mongoose.connect(process.env.DB_HOST+"/"+process.env.DB_NAME, { useNewUrlParser: true });
这将为您创建集合:

const model = mongoose.model('Model',new mongoose.Schema({
                             // your schema here
                            });
 var document = new Model({
                     //your document here
                });
document.save((e)=>{
         if(e) console.log(e);
        // document created in the models collection in database
       });

您希望实现什么,理想解决方案的一个示例会很好,因此我们可以建议类似的方法/备选方案。如果不存在给定名称的集合,则将使用该集合的模型架构创建该集合。嘿,Fathma,我相信Mongo DB默认情况下自动支持这一点。例如,如果您转到mongo并转到db.testCollectionName.create({a:1}),那么它将在已经存在的db“db”中创建一个名为“testCollectionName”的新集合,并在其中添加一个新记录,其中包含以下值{U id:…,a:1}。因此,我可以为您的用例想出两个选项:1)使用NodeJS mongodb驱动程序(google“mongo NodeJS”=)2)使用Mongoose(google“mongo orm odm js”=)我现在推荐选项2。