【问题标题】:Can I hook up a model to an existing database?我可以将模型连接到现有数据库吗?
【发布时间】:2014-06-20 09:25:04
【问题描述】:

我有 mongodb 位于现有 API 后面,并希望迁移 API 以使用sailsjs。

数据结构并不疯狂 - 只是使用默认 mongodb ObjectIds 作为主键的标准东西。

我是否可以通过连接sails 模型来将这个现有的数据库与sai​​ls 一起使用?我需要指定 _id 字段吗?如果是这样,我应该使用什么数据类型?

例如具有以下架构的用户集合的现有 mongodb:

_id
name
  fname
  lname
age

我可以使用类似以下的方式进行连接以使其工作吗?:

// User.js
var User = {
  attributes: {
    name: {
       fname: 'STRING',
       lname: 'STRING'
    },
    age: 'INTEGER'
  }
};

module.exports = Person;

【问题讨论】:

    标签: sails.js


    【解决方案1】:

    首先:你不必定义_id(水线为你做这个)

    Waterline 希望帮助您对所有类型的数据库使用相同的函数和模型。例如,mysql 不支持“子字段”。所以这行不通。

    你可以这样做:

    // User.js
    var User = {
     attributes: {
       name: 'json',
       age: 'integer'
     }
    };
    
    module.exports = User;
    

    如果您想验证“名称”,您可以添加自己的验证:

    // User.js
    var User = {
     types: {
        myname: function(json){
            if(typeof json.fname == "string" && typeof json.lname == "string"){
              return true;
            }else{
              return false;
            }
        }
     },
     attributes: {
       name: {
          type: "json",
          myname: true
       },
       age: 'integer'
     }
    };
    
    module.exports = User;
    

    【讨论】:

    • 我正在使用 mongodb。对此进行快速而肮脏的测试看起来不错。
    猜你喜欢
    • 1970-01-01
    • 2014-05-25
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 2021-12-22
    • 1970-01-01
    • 2011-11-17
    相关资源
    最近更新 更多