Restangular - 自定义搜索 - 在数组中搜索

时间:2014-03-10 12:35:38

标签: json angularjs mongodb restangular mlab

假设我有一个mongodb items集合,看起来像这样(MongoLab):

{
    "_id": {
        "$oid": "531d8dd2e4b0373ae7e8f505"
    },
     "tags": [
        "node",
        "json"
    ],
    "anotherField": "datahere"
}
{
    "_id": {
        "$oid": "531d8dd2e4b0373ae7e8f505"
    },
     "tags": [
        "ajax",
        "json"
    ],
    "anotherField": "datahere"
  }

我想获得nodetags数组中的所有项目。 我已尝试过以下内容,但没有成功 - 它会返回所有项目 - 没有执行搜索?

Plunker演示:http://plnkr.co/edit/BYj09TOGyCTFKhhBXpIO?p=preview

// $route.current.params.id = "node" - should give me only 1 record with this tag
Restangular.all("items").customGET("", { "tags": $route.current.params.id });

完整示例,为两种情况返回相同的记录:

    var all = db.all('items');

    // GET ALL
    all.getList().then(function(data) {
        $scope.all = data;
        console.log(data);
    });

    // SEARCH for record where "tags" has got "node"
    all.customGET('', { "tags": "node"}).then(function(data) {
        $scope.search = data;
        console.log(data);
    });

任何建议都会非常感激。

1 个答案:

答案 0 :(得分:4)

根据Mongolab REST API Documentation,您必须使用q参数传递查询对象。在您的情况下,它是q={"tags":"node"}

使用Restangular会是这样的:

Restangular.all("items").customGET('', { q: {"tags": "node"}})