Bagaimana cara saya bekerja dengan Kueri Mongodb di tumpukan node JS MEAN

Saya menggunakan boilerplate MEAN linnovate untuk membangun aplikasi: https://github.com/linnovate/mean

Dengan MongoDB saya memahami cara menanyakan koleksi di database dan mendapatkan hasilnya melalui baris perintah seperti:

db.articles.find({ 'title' : 'hello world'})

Di aplikasi MEAN, area yang saya perhatikan untuk jenis kueri ini ada di file app/controllers/articles.js:

/**
* List of Articles
*/
exports.all = function(req, res) {
    Article.find().sort('-created').populate('user', 'name username').exec(function(err, articles) {
        if (err) {
            res.render('error', {
                status: 500
            });
        } else {
            res.jsonp(articles);
        }
    });
};

Jika saya ingin menambahkan cara untuk mengembalikan daftar lain dengan kueri tertentu, bagaimana cara melakukannya? Berikut adalah kode yang sedang saya kerjakan:

exports.all = function(req, res) {
    Article.find().sort('-created').populate('user', 'name username').exec(function(err, articles) {
        if (err) {
            res.render('error', {
                status: 500
            });
        } else {
            res.jsonp(articles);
        Article.find({ 'category' : 'hello world').sort('-created').populate('user', 'name username').exec(function(err, morearticles) {
            if (err) {
                res.render('error', {
                    status: 500
                });
            } else {
                res.jsonp(morearticles);
            }
        });
        }
    });
};

person Reroute    schedule 06.11.2013    source sumber


Jawaban (1)


Karena sifatnya yang asinkron, Anda harus menempatkan kueri kedua di dalam else-statement kueri pertama.

Silakan lihat pertanyaan ini untuk informasi lebih lanjut:

merender hasil beberapa DB/ kueri luwak ke tampilan di express.js

Dua kueri database di Mongoose dengan Express

person Matthias Holdorf    schedule 06.11.2013