SailsJS RESTful Json API搜索

时间:2013-11-05 14:11:34

标签: json api mongodb rest sails.js

我开始使用Sails,我正在尝试实现RESTful Json API文档的创建和搜索。

我有这样的文件:

[
  {
    "players": [
      {
        "name": "jonathan"
      },
      {
        "name": "nicolas"      
      }
    ],
    "createdAt": "2013-11-05T12:35:41.578Z",
    "updatedAt": "2013-11-05T12:35:41.578Z",
    "id": "5278e61ddbc01cd206000003"
  },
  {
    "players": [
      {
        "name": "eddy"
      },
      {
        "name": "jonathan"
      }
    ],
    "createdAt": "2013-11-05T12:37:52.526Z",
    "updatedAt": "2013-11-05T12:37:52.526Z",
    "id": "5278e6a0dbc01cd206000004"
  }
]

现在我想在POST Json请求中搜索一些文档,例如,有一个名为nicolas的播放器。我不知道该怎么做。

我想到了这一点,但没有运气:

{
  'where':{
    'players.name':'nicolas'
  }
}

顺便说一下,我正在使用sails-mongo适配器。

1 个答案:

答案 0 :(得分:1)

我相信您正在寻找'模型和ORM'中的'Query Language'部分。部分SailsJS文档和Waterline文档的'Working with Queries'部分也可能有所帮助。

注意:不要让像https://www.youtube.com/watch?v=HozWtywQNMo这样的老教程让您感到困惑。我相信查询语法有所改变。因此,也值得阅读迁移指南。

以下是一个例子:

    User.find({id: req.params['id'], limit: 1})
    .then(function foundUser(user){
        if(!user) return next();
        res.view({
            user: user[0]
        });
    })
    .catch(function(err){
        if(err) return next(err);
    });

或:

    User.findOne({id: req.params['id']})
    .exec(function foundUser(err, user){
        if(err) return next(err);
        if(!user) return next();
        res.view({
            user: user
        });
    });

快乐航行。