Узел js Служба REST Отдельный массив mongodb пуст - PullRequest
0 голосов
/ 09 сентября 2018

Я младший разработчик и занимаюсь разработкой REST-сервиса с использованием Node JS, Express, MongoDB на Azure. В моей БД у меня есть Коллекция из большего количества машин с полями модели, типа и т. Д., И когда я делаю отдельный запрос, я получаю в ответ массив строк. Пример:

[
"Massey Ferguson",
"JOHN DEERE",
"FENDT",
"NEW HOLLAND",
"CASE-IH",
"DEUTZ-FAHR",
"VALTRA/VALMET",
"SAME",
"BCMH",
"CASE",
"CATERPILLAR",
"CHALLENGER"
]

Теперь я написал сервис GET:

router.get('/machine_brand', function(req,res){
Machine.find().distinct('Brand', (err, items) => {
    if (err) {
        console.log(err);
        return res.status(400).send({ status: 'ko', data: {msg: err.message }});
        console.log(err);
    }
    console.log(items);
    res.status(200).send({status: 'ok', data: {msg: 'Brands available', brand:items}});
});
});

Ответ службы - 200, но в качестве ответа json я получаю пустой массив

{
"status": "ok",
"data": {
    "msg": "Brands available",
    "brand": []
}

}

Почему массив пуст? Как можно получить в массиве тот же ответ на запрос монго, который я запустил на робомонго? Я пробовал также с find () и ruslt то же самое: пустой массив []

router.get('/machine', function(req,res){
Machine.find({}, (err, machine) => {
    if (err) {
        console.log(err);
        return res.status(400).send({ status: 'ko', data: {msg: err.message }});
    }
    res.status(200).send({status: 'ok', data: {msg: 'Lista machine', machine: machine}});
});

}); А это моя модель:

var db = require('../config/db.js');


var MachineSchema = db.Schema({
Brand: {type: String, required: true},
Model: {type: Number, required: true},
Version:{type: String, required: true},
Hp: {type: String, required: true}

});

db.model('Machine', MachineSchema);

module.exports = db.model('Machine');

Спасибо за вашу помощь Лучшее,

1 Ответ

0 голосов
/ 09 сентября 2018

Кажется, что это должно сработать, и тот факт, что вы получаете ответ вообще, является хорошим знаком. Моим первым предложением было бы убедиться, что имя коллекции соответствует вашему БД. Я только что протестировал фрагмент кода (выбирая коллекцию с именем «UsErS»), и кажется, что MongoDB НЕ выдает ошибку в этом случае, а просто создает новую пустую коллекцию с предоставленным именем.

edit: если вы получаете заполненный ответ, используя другую библиотеку, то также дважды проверьте инициализацию вашей библиотеки, чтобы убедиться, что она соответствует правильному db и т. Д.

...