我只想知道当我设置mongoose连接并定义一些模型时(先前在app.js或wathever上添加了它们的相应要求),模型(如果不存在)将在第一次自动创建当我运行node app.js?
这种逻辑是否正确?
如果没有,我是否必须在我的mongoDB集合,模型等之前创建?
当我第一次运行app.js时,我正想着自动创建mongo db集合
谢谢! Michele Prandina
答案 0 :(得分:1)
架构(和模型)是数据模型的客户端(node.js)表现形式。一些东西,比如你定义的索引,是在第一次使用时创建的(比如保存文档)。几乎所有其他东西都是延迟创建的,包括集合。
如果您想要关于模型(及其关联的模式)的一致行为,您需要确保在访问相关数据库之前加载它们。只要在使用之前创建/执行它们,放置它们的位置并不重要。例如:
app.js
models\Cheese.js
\Cracker.js
然后,在app.js
:
var Cheese = require('Cheese.js');
var Cracker = require('Cracker.js');
当然,假设您已导出模型:
model.exports = mongoose.model('Cheese',
new mongoose.Schema({
name: String,
color: String
})
);