2016-11-26 3 views
0

Я новичок, но пытаюсь выяснить, почему мой запрос GET возвращает пустой массив, хотя я знаю, что коллекция базы данных Mongo не пуста. Каждая форма слова в коллекции WordForm имеет ключ «lexicalform», значение которого является ссылкой на объект LexiconEntry в этой коллекции. Когда я отправляю запрос GET с параметром LexiconEntry ObjectId в качестве параметра, он возвращает пустой массив вместо содержимого массива. Вот мои файлы:Запрос GET возвращает пустой массив вместо содержимого массива

ГЭТ маршрут в мой контроллер:

api.get('/wordforms/:id', (req, res) => { 
    WordForm.find({lexiconentry: req.params.id}, (err, wordforms) => { 
     if (err) { 
     res.send(err); 
     } 
     res.json(wordforms); 
    }); 
    }); 

LexiconEntry модель:

import mongoose from 'mongoose'; 
import WordForm from './wordform'; 
let Schema = mongoose.Schema; 

let LexiconEntrySchema = new Schema({ 
    lexicalform: String, 
    pos: String, 
    gender: String, 
    genderfull: String, 
    decl: String, 
    gloss: [String], 
    meaning: String, 
    pparts: [String], 
    tags: [String], 
    occurrences: Number, 
    wordforms: [{type: Schema.Types.ObjectId, ref: 'Form'}] 
}); 

module.exports = mongoose.model('LexiconEntry', LexiconEntrySchema); 

словоформ модель:

import mongoose from 'mongoose'; 
import LexiconEntry from './lexiconentry'; 
let Schema = mongoose.Schema; 

let WordFormSchema = new Schema({ 
    form: String, 
    gender: String, 
    case: String, 
    number: String, 
    lexicalform: { 
    type: Schema.Types.ObjectId, 
    ref: 'LexicalForm', 
    required: true 
    } 
}); 

module.exports = mongoose.model('WordForm', WordFormSchema); 
+0

Можете ли вы попробовать предложенный ниже ответ? Вы указали название модели как свойство в своем запросе. – Aruna

ответ

0

на основе вашей WordForm схемы данное выше, нет такого имущества lexiconentry существует в WordForm, как в вашем запросе ниже.

api.get('/wordforms/:id', (req, res) => { 
    WordForm.find({lexiconentry: req.params.id}, (err, wordforms) => { 
     if (err) { 
     res.send(err); 
     } 
     res.json(wordforms); 
    }); 
    }); 

Свойство, называемое lexicalform в WordForm схеме напоминал тот, который вы пытаетесь выше. Таким образом, вы можете изменить свой код, как показано ниже.

api.get('/wordforms/:id', (req, res) => { 
    WordForm.find({lexicalform: req.params.id}, (err, wordforms) => { 
     if (err) { 
     res.send(err); 
     } 
     res.json(wordforms); 
    }); 
    }); 
+0

Это сработало! Спасибо!! –

Смежные вопросы