【发布时间】:2021-02-01 12:43:52
【问题描述】:
我无法通过 mongoose 从我的 MongoDb 集合中获取数据 - 我从我的请求中得到一个空数组。只有当我使用我在下面发布的路线时才会发生这种情况。 代码
router.get("/options", async (req,res) => {
try {
const { animalClass} = req.body;
if (!animalClass) {
const animalClasses = await AnimalClass.find({});
console.log(animalClasses);
return res
.status(200)
.json({animalClasses})
} else {
const animalTypes = await AnimalType.find({class: animalClass});
console.log(animalTypes);
return res
.status(200)
.json({animalTypes})
}
} catch (err) {
res
.status(500)
.json({msg: err})
}
});
架构
const mongoose = require('mongoose');
const animalClassSchema = new mongoose.Schema({
name: {type: String, required: true}
})
module.exports = AnimalClass = mongoose.model('animalClass',animalClassSchema);
【问题讨论】:
-
默认情况下,Mongoose 会将您的收藏名称复数。这可能就是正在发生的事情。你能验证吗?尝试指定您的集合名称,如以下答案:stackoverflow.com/a/7527515/1520071
-
这很奇怪,但它确实有效:B
-
是的,ORM 的陷阱之一 :) 有时它们会试图为您做太多事情。我发布了一个答案,因为您确认这是问题所在。
标签: node.js json mongodb rest mongoose