如何在StrongLoop中获取特定字段的结果?

时间:2014-08-14 05:09:17

标签: javascript strongloop loopbackjs

我目前正在使用StrongLoop作为我的API后端服务器,使用Mongodb作为数据存储引擎。

我们假设有一个名为article的集合。它有两个字段titlecontent。并且有两个前端页面可显示文章列表并查看单个文章。

显然,数据列表页面只需要title字段,视图页面需要两者。目前,StrongLoop API的GET方法会返回包括content在内的所有字段。它需要额外的流量。有什么方法可以返回特定领域吗?

Mongodb支持projection for find()方法。我怎样才能通过StrongLoop做同样的事情?

3 个答案:

答案 0 :(得分:2)

您是否看过提供的过滤器? http://docs.strongloop.com/display/LB/Querying+models

答案 1 :(得分:2)

查询NodeAPI:

server.models.Student.findOne({where: {RFID: id},fields: {id: true,schoolId: true,classId: true}}, function (err, data) {
                        if (err) 
                         callback(err);
                         else {
                            callback();
                        }
                    })

查询RestAPI:

 $http.get('http://localhost:3000/api/services?filter[fields][id]=true&filter[fields][make]=true&filter[fields][model]=true')
                .then(function (response) {

                }, function (error) {

                });

答案 2 :(得分:0)

您可以使用字段投影,

样本记录:

{ name: 'Something', title: 'mr', description: 'some desc', patient: { name: 'Asvf', age: 20, address: { street: 1 }}}

一级投影:

model.find({ fields: { name: 1, description: 1, title:  0 } })

我认为Strong循环尚不支持二级对象过滤器,有人知道如何过滤二级对象属性或尚未实现吗?

第二级投影:(在这里需要帮助)

例如:2

model.find({ fields: { name: 1, 'patient.name': 1, 'patient.age': 1, 'patient.address': 0 } })
// Which results { name } only