Interroger la base de données NoSQL
NOSQL('name').find() renvoie un query builder. Enchaînez les conditions et terminez par .callback(function(err, response) {}) ; response est un tableau de documents. Les méthodes les plus utiles :
.where('age', '>', 30)compare un champ (l'opérateur est=par défaut ; utilisez>,<,>=,<=,<>).in('city', ['Bratislava', 'Prague'])correspond à l'une des valeurs.between('age', 20, 40)correspond à une plage.search('name', 'ann')cherche des mots dans un champ texte.sort('age_desc')trie selon un champ (_ascou_desc).take(10)et.skip(20)paginent les résultats.fields('name,age')ne renvoie que ces champs.first()renvoie un document au lieu d'un tableau
exports.install = function() {
ROUTE('POST /seed/', seed);
ROUTE('GET /older/', older);
ROUTE('GET /cities/', cities);
ROUTE('GET /range/', range);
ROUTE('GET /search/', search);
ROUTE('GET /page/', page);
ROUTE('GET /names/', names);
ROUTE('GET /youngest/', youngest);
};
function seed($) {
var people = [
{ id: '1', name: 'Anna Novak', age: 25, city: 'Bratislava' },
{ id: '2', name: 'Boris Kral', age: 35, city: 'Prague' },
{ id: '3', name: 'Cyril Dvorak', age: 45, city: 'Vienna' },
{ id: '4', name: 'Diana Hall', age: 30, city: 'Bratislava' }
];
people.wait(function(item, next) {
NOSQL('people').insert(item).callback(next);
}, () => $.json({ count: people.length }));
}
function older($) {
NOSQL('people').find().where('age', '>', 30).sort('age_desc').callback((err, response) => $.json(response));
}
function cities($) {
NOSQL('people').find().in('city', ['Prague', 'Vienna']).sort('name_asc').callback((err, response) => $.json(response));
}
function range($) {
NOSQL('people').find().between('age', 26, 40).sort('age_asc').callback((err, response) => $.json(response));
}
function search($) {
NOSQL('people').find().search('name', 'hall').callback((err, response) => $.json(response));
}
function page($) {
NOSQL('people').find().sort('age_asc').take(2).skip(2).callback((err, response) => $.json(response));
}
function names($) {
NOSQL('people').find().fields('name').sort('name_asc').take(2).callback((err, response) => $.json(response));
}
function youngest($) {
NOSQL('people').find().sort('age_asc').first().callback((err, response) => $.json(response));
}