将Mongodb连接到Sails JS

时间:2016-04-12 17:10:39

标签: node.js mongodb sails.js sails-mongo nosql

我已阅读各种教程和说明如何将sails连接到js。每个教程都告诉我这样做。我是mongodb btw的新手。

我按照说明

  1. 安装sails-mongo(npm install)

  2. 编辑配置/连接

    mongo: {
      adapter: 'sails-mongo',
      host: 'localhost',
      port: 54321,
      database:'dbname'
     }
    
  3. 编辑config / models.js

    connection:'mongo'
    
  4. 编辑local.js

    connections: {
      mongodb: {
      host      : 'localhost',
      port      : 54321,
      database  : 'dbname'
      }
    }
    
  5. 所以在我的api / model / User.js

     module.exports = {
       attributes:{
          name: {  
            type: 'string'
          },
          employedIn:{ 
           collection:'company'
          }
        },
        findUsers :function(opts,cb){
    
          Users.findOne(opts).exec(function (err, theUser) {
             // to do
             // i wanna show the data of the user
          });
        }
    
     }
    

    我运行console.log(用户),但我没有找到列/文档。

    现在,我如何从mongodb获取名为users的集合? (就像SQL中的'SELECT * FROM users'或db.users.find()。pretty())

1 个答案:

答案 0 :(得分:1)

您可以按型号findfindOne方法查询水线模型。您可以按create创建新记录,按update更新,然后按destroy方法删除。查询接口公开了更多方法。您必须调用exec并将回调传递给它,以使其运行。文档在这里:Waterline Query Interface

所以基本上它只是:

User.create({
  name: 'Max Mustermann'
}).exec(function(console.log));

User.find().exec(function(console.log));

User.create({
  name: 'Peter Pan'
}).exec(function(console.log));

User.find().exec(console.log);

User.findOne({
  where: { name: 'Max Mustermann' }
}).exec(function(err, user) {
  user.destroy().exec(console.log);
});

您的模型上不需要自定义findUsers方法。这只是找到:

// /api/model/User.js
module.exports = {
  attributes:{
    name: {  
      type: 'string'
    },
    employedIn:{ 
      collection:'company'
    }
  }
}

您应该使用sails console进行测试。