Почему моя модель Mongoose возвращает пустой ответ даже после передачи имени коллекции? - PullRequest
0 голосов
/ 04 февраля 2019

Я настроил кластер MongoDB под названием «питание» с помощью Atlas MongoDB и пытаюсь получить документы в этом кластере с помощью Mongoose.Я получаю пустой список ([]) даже после указания имени коллекции в определении схемы.Я могу получать данные из этого кластера в MongoDB Compass, но не через свой внутренний код.Пожалуйста, помогите.

Соединение с базой данных успешно, и маршрутизатор правильно маршрутизирует к соответствующему контроллеру.Я попытался упомянуть имя кластера при определении схемы в моей модели, как и большинство других решений.Я пытался вставить его в новую Schema (), а также в mongoose.model ()

Вот документ из моего кластера под названием 'nutrition':

_id:5c5727667fead009507c0e11
<br>
FoodGroup:"Dairy and Egg Products"
<br>
ShortDescrip:"BUTTER-WITH SALT"<br>
Energy_kcal:"717.0"<br>
Protein_g:"0.85"<br>
Fat_g:"81.11"<br>
Carb_g:"0.06"<br>
Sugar_g:"0.06"<br>
Fiber_g:"0.0"

NutritionModel.js<br>
const mongoose = require('mongoose');<br>
const Schema = mongoose.Schema;<br>
var NutritionSchema = new Schema({<br>
    _id: Object,<br>
    FoodGroup: String,<br>
    ShortDescrip: String,<br>
    Energy_kcal: String,<br>
    Protein_g: String,<br>
    Fat_g: String,<br>
    Carb_g: String,<br>
    Sugar_g: String,<br>
    Fiber_g: String<br>
});<br>
module.exports = mongoose.model('Nutrition', NutritionSchema, 'nutrition');<br>

NutritionController.js<br>
const Nutrition = require('../Models/nutritionModel');<br>
exports.nutritionDetails = function (req, res){<br>
    Nutrition.find({}, function (err, products) {<br>
        if (err) <br>
            res.send(err);<br>
        res.send(products);     //This is always blank!<br>
    });<br>
};

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Вы можете попробовать, добавив dbName к строке подключения, как, я тоже столкнулся с той же проблемой, это сработало для меня:

mongoose.connect(
  process.env.MONGO_URI,
  {
    useNewUrlParser: true,
    dbName: "Your_db_name"
  }
).then(() => {
  console.log('DB Connected');
},
  (error) => {
    console.log('Error in connecting db', error)
  }
)
0 голосов
/ 04 февраля 2019

Возможно, это ваша _id декларация в вашей модели.Вы говорите, что тип является объектом.Попробуйте вместо этого сделать ObjectId следующим образом:

_id: {
  type: mongoose.Types.ObjectId
}
...