В Hibernate мы можем автоматически создавать базы данных и таблицы (базы данных SQL), используя классы сущностей. Можно ли добиться того же в Express.js с помощью Mongodb (NoSql).
если не существует коллекции с заданным именем, коллекция будет создана с использованием схемы модели этой коллекции.
Привет, Фатма, я считаю, что Mongo DB автоматически поддерживает это по умолчанию. Например. если вы перейдете на mongo и перейдете к db.testCollectionName.create ({a: 1}), тогда он создаст новую коллекцию с именем 'testCollectionName' в уже существующем db 'db' и добавит туда новую запись со следующими значениями {_id: ..., a: 1}. Говоря это, я могу придумать два варианта для вашего варианта использования: 1) Используйте драйвер NodeJS mongodb (google "mongo nodejs" = mongodb.github.io/node-mongodb-native) 2) Используйте Mongoose (google "mongo orm odm js" = mongoosejs.com) Я рекомендую вариант 2 на данный момент.
Просто запустите локальный сервер mongodb и запустите приложение. Когда мангуст пытается подключиться к базе данных, упомянутой в приложении, он создает базу данных, если ее нет. Также при сохранении документа коллекции создаются автоматически.
Это создаст базу данных при первом запуске
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.info(e);
// document created in the models collection in database
});
Чего вы надеетесь достичь, пример вашего идеального решения был бы хорош, поэтому мы могли бы предложить аналогичные подходы / альтернативы.