我已经使用 Atlas MongoDB 设置了一个名为“nutrition”的 MongoDB 集群,并尝试使用 Mongoose 获取该集群中的文档。即使在架构定义中指定了集合的名称后,我仍然得到一个空白列表 ([])。我可以从 MongoDB Compass 中的集群获取数据,但不能通过我的后端代码获取数据。请帮忙。
数据库连接成功,路由器正确路由到相应的 Controller 。我尝试在模型中定义架构时提及集群的名称,就像大多数解决方案要求的那样。我尝试将其插入 new 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>
};
最佳答案
这可能是您模型中的 _id 声明。你说类型是一个对象。尝试将其设为 ObjectId,如下所示:
_id: {
type: mongoose.Types.ObjectId
}
关于node.js - 为什么我的 Mongoose 模型即使在传递集合名称后仍返回空白响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54509559/