我要创建集合名称的“ party”并请求getAll数据。我的模特:
const mongoose = require('mongoose');
let PartySchema = new mongoose.Schema(
{
partyId: String,
partyName: String,
}
);
module.exports = mongoose.model('Party', PartySchema)
还有我的控制器:
const Party = require('./../models/Party')
module.exports = {
getAll: (req, res, next) => {
console.log(Party.find());
Party.find().exec((err, party)=> {
if (err)
res.send(err)
else if (!party)
res.send(404)
else
res.send(party)
next()
})
},
}
Console.log向我显示collectionName是“ parties”而不是“ party”。听到了什么事?
答案 0 :(得分:1)
猫鼬尝试通过使您的shema为复数形式来推断集合名称。
但是,您可以使用second parameter来强制设置集合名称:
let PartySchema = new mongoose.Schema(
{
partyId: String,
partyName: String,
},
{ collection: 'your_collection_name' }
);
答案 1 :(得分:1)
猫鼬通过一个函数运行所有集合名称,该函数使用称为toCollectionName
的fn将集合名称复数。您可以在此处查看实现:https://github.com/Automattic/mongoose/blob/master/lib/utils.js#L31