【问题标题】:Why auto-migration doesn't create any properties in a Collection? How to make it to create them?为什么自动迁移不会在集合中创建任何属性?如何创建它们?
【发布时间】:2015-11-01 22:34:46
【问题描述】:

我使用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 不对我的 Client 模型使用 User 模型属性?如何自动迁移以便 Loopback 创建正确的集合?

【问题讨论】:

    标签: loopbackjs strongloop


    【解决方案1】:

    automigrate 用于将模型数据迁移到表中,即模型nametablename,模型的propertiestable columns

    现在,当您使用 MongoDB 时,它会按照documentation 中的说明删除并创建索引。这是因为 MongoDB 是无模式的。

    所以,也许您可​​以避免自动迁移并直接插入新文档。

    【讨论】:

      猜你喜欢
      • 2017-09-28
      • 1970-01-01
      • 2020-01-17
      • 2012-10-26
      • 2017-04-10
      • 1970-01-01
      • 2021-10-28
      • 2021-06-27
      • 2021-02-28
      相关资源
      最近更新 更多