为什么我的Mongoose模型即使在传递集合名称后仍返回空白响应?
我已经使用Atlas MongoDB建立了一个名为'nutrition'的MongoDB集群,并且正在尝试使用Mongoose来获取该集群中的文档。即使在Schema定义中指定了集合的名称,我也得到了一个空白列表([])。我能够在MongoDB Compass中从该群集中获取数据,但是无法通过我的后端代码。请帮助。
数据库连接成功,并且路由器正确路由到适当的控制器。我试图像大多数要求的解决方案一样在模型中定义架构时提及集群的名称。我试图将其插入新的Schema()以及mongoose.model()
这是我的集群中名为“营养”的文档:
_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>
};
回答如下: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)
}
)