集合名称在reactjs和mogoDB中自动转换为复数?

时间:2018-08-13 16:29:56

标签: node.js mongodb reactjs

我要创建集合名称的“ 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”。听到了什么事?

2 个答案:

答案 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