Atualizar
Há uma redação melhor se isso for confundir as pessoas; consulte a localização de documentos e como as consultas funcionam no manual do mangusto. Se você deseja usar a API fluente, pode obter um objeto de consulta não fornecendo um retorno de chamada para o find()
método; caso contrário, você pode especificar os parâmetros, conforme descrito abaixo.
Original
Dado um model
objeto, de acordo com os documentos do Model , é assim que ele pode funcionar 2.4.1
:
Post.find({search-spec}, [return field array], {options}, callback)
O search spec
espera um objeto, mas você pode passar null
ou um objeto vazio.
O segundo parâmetro é a lista de campos como uma matriz de seqüências de caracteres, então você forneceria ['field','field2']
ou null
.
O terceiro parâmetro são as opções como objeto, que incluem a capacidade de classificar o conjunto de resultados. Você usaria { sort: { field: direction } }
where field
é a string fieldname test
(no seu caso) e direction
é um número em que 1
está subindo e -1
descendo.
O parâmetro final ( callback
) é a função de retorno de chamada que recebe a coleção de documentos retornados pela consulta.
A Model.find()
implementação (nesta versão) faz uma alocação deslizante de propriedades para lidar com parâmetros opcionais (que é o que me confundiu!):
Model.find = function find (conditions, fields, options, callback) {
if ('function' == typeof conditions) {
callback = conditions;
conditions = {};
fields = null;
options = null;
} else if ('function' == typeof fields) {
callback = fields;
fields = null;
options = null;
} else if ('function' == typeof options) {
callback = options;
options = null;
}
var query = new Query(conditions, options).select(fields).bind(this, 'find');
if ('undefined' === typeof callback)
return query;
this._applyNamedScope(query);
return query.find(callback);
};
HTH