2016-05-16 2 views
0

で働いていない私はここにページネーションを使用することができるはずのドキュメントによると、私のFOXX再生アプリケーションcollection.all()リミット(n)はFOXX

var geodata = new Geodata(
    applicationContext.collection('geodata'), 
    {model: Geodatum} 
); 

/** Lists of all geodata. 
* 
* This function simply returns the list of all Geodatum. 
*/ 
controller.get('/', function (req, res) { 
    var parameters = req.parameters; 
    var limit = parameters['limit']; 
    var result = geodata.all().limit(10); 
    if (limit != "undefined") { 
    result = result.slice(0, limit); 
    } 
    res.json(_.map(result, function (model) { 
    return model.forClient(); 
    })); 
}); 

の内側に、このコードを持っている - 私は制限したいです与えられた「限界」パラメータによる検索結果が、これは私にエラー

2016-05-16T14:17:58Z [6354] ERROR TypeError: geodata.all(...).limit is not a function 

https://docs.arangodb.com/SimpleQueries/Pagination.html

答えて

1

を与えるドキュメントは、コレクションを指します。 Foxxリポジトリを使用しているようです。 Foxxリポジトリは、同じメソッドの大部分を提供するコレクションの周りのラッパーですが、Foxxモデルで結果をラップするプレーンなドキュメント(またはカーソル)を返すのではなく、

あなたの場合、おそらくFoxxモデルを使用したくないようです(ドキュメントに変換しているだけで、おそらく_rev_idといったいくつかの属性を削除する可能性があります)。完全にリポジトリとあなたが直接に渡しているコレクションを使用:あなたはリポジトリやモデルがで離れて行く理由でリポジトリとコレクションの区別によって混同される最初の人じゃない

var geodata = applicationContext.collection('geodata'); 

/** Lists of all geodata. 
* 
* This function simply returns the list of all Geodatum. 
*/ 
controller.get('/', function (req, res) { 
    var parameters = req.parameters; 
    var limit = parameters['limit']; 
    var result = geodata.all().limit(10); 
    if (limit != "undefined") { 
    result = result.slice(0, limit); 
    } 
    res.json(_.map(result, function (doc) { 
    return _.omit(doc, ['_id', '_rev']); 
    })); 
}); 

を次回の3.0リリース(ただし、必要に応じて従来の2.8互換サービスでも使用できます)。