在Sails.js中从MongoDB中获取数据

时间:2014-09-17 10:40:38

标签: javascript node.js mongodb sails.js waterline

我是Sails.js的新手。我正在尝试从我的Mongo Db数据库“TestDB”中获取数据,我有一个名为“Components”的集合,所以我创建了一个名为Components的模型,其中包含我的集合的属性

Components.js

module.exports = {

 attributes: {
    TaskId: {
      type: 'string',
      required: true
    },

    CompName: {
      type: 'string'
    },

    InitialAttr: {
      type: 'string'
    },

    Value: {
      type: 'string'
    }
  }
};

ComponentsController.js

module.exports = {
    GetComponentList : function(req, res){
        Components.find({ CompName: 'ImageComponent'}).exec(function(err, data) {
                if (err) return next(err);
                res.json(data);  
            });
    }
};

路线:

'/comp' : {
        controller: 'components',
        action: 'GetComponentList'
    }

以上查询在MongoVUE中返回数据集时执行正常,但返回

[]

在Sails.js

1 个答案:

答案 0 :(得分:2)

Waterline ORM期望所有数据库表/集合都是小写的。我猜你是否查看了你的Mongo数据库,你发现现在有两个集合:Componentscomponents。如果您不关心数据库中的现有数据,则可以删除Components集合。否则,您可以使用tableName property

将模型指向现有集合
module.exports = {

  tableName: 'Components',

  attributes: {
    TaskId: {
      type: 'string',
      required: true
    },
    ...etc...
  }

}