我使用slc loopback:model
工具创建了模型。现在我希望Loopback创建相应的MongoDB集合,即执行自动迁移。
其中一个模型是Client
模型,其基类是User
模型。这意味着client/models/client.json
只是空的,因为它的所有属性(字段)都是从User
继承的:
{
"name": "Client",
"plural": "Clients",
"base": "User",
"idInjection": true,
"properties": {},
"validations": [],
"relations": {},
"acls": [],
"methods": []
}
所以我想我自己,如果我进行自动迁移,Loopback会找到所有User
属性并使用它们创建Client
集合。但事实并非如此!我的Client
集合只有_id
属性。
以下是我的自动迁移代码:
module.exports = function(app) {
app.dataSources.mongodb.automigrate('Client', function(err) {
if (err) throw err;
});
};
我的问题:
为什么Loopback不为我的User
模型使用Client
模型属性?如何自动迁移以便Loopback将创建正确的集合?
答案 0 :(得分:1)
automigrate用于将模型数据迁移到表格中,即模型名称为tablename
,模型的属性为table columns
。
现在,当您使用MongoDB时,它会删除并创建documentation中所写的索引。这是因为MongoDB是无模式的。
因此,您可以避免自动迁移并直接插入新文档。