2016-05-16 13 views
0

Ich habe diesen Code in meiner FOXX play Anwendungcollection.all() Grenze (n) nicht in FOXX Arbeits

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(); 
    })); 
}); 

Nach der Dokumentation soll ich in der Lage seiner Paginierung hier verwenden - ich will begrenzen die Suchergebnisse durch die gegebenen ‚Limit‘ Parameter aber das gibt mir einen Fehler

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

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

Antwort

1

die Dokumentation zu den Sammlungen bezieht. Sie scheinen ein Foxx-Repository zu verwenden. Foxx-Repositorys sind Wrapper für Auflistungen, die die meisten Methoden bereitstellen, aber anstatt einfache Dokumente (oder Cursor) zurückzugeben, verpacken sie die Ergebnisse in Foxx-Modelle.

In Ihrem Fall sieht es so aus, als ob Sie wahrscheinlich gar keine Foxx-Modelle verwenden möchten (Sie konvertieren sie nur zurück in Dokumente, entfernen wahrscheinlich nur einige Attribute wie _rev und _id) Repository vollständig und verwenden Sie die Sammlung, die Sie in sie direkt vorbei sind:

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']); 
    })); 
}); 

Du bist nicht die erste Person, die von der Unterscheidung zwischen Repositorys und Sammlungen verwechselt werden, weshalb Repositorys und Modelle in die gehen weg bevorstehende Version 3.0 (aber Sie können sie immer noch in älteren 2.8-kompatiblen Diensten verwenden, wenn Sie dies benötigen).