mongoose操作mongodb时的集合名称单复数问题

1、在 boss 数据库下新建 user 集合

2、随便插入几条数据

3、用mongoose建立模型,此处user集合所写的是单数形式

const models = {
    user: {
        'user': { type: String, require: true },
        'pwd': { type: String, require: true },
        'type': { type: String, require: true },
        //头像
        'avatar': { type: String },
        //简介
        'desc': { type: String },
    }
}

for (let m in models) {
    mongoose.model(m, new mongoose.Schema(models[m]))
}

module.exports = {
    getModel: function(name){
        return mongoose.model(name)
    }
}

4、查询操作

const User = model.getModel('user')

Router.get('/list', function (req, res) {
    User.find({}).exec(function (err, doc) {
        res.json(doc)
    })
})

发送请求后返回结果为空数组[ ],这就奇了怪了。

然后

直接使用该模型插入新的数据,发现数据库中多出了一个users集合

所以在用mongoose操作mongodb时应注意单词单复数形式。

如果不想变成复数,参考 mongoose连接collection后自动加s的问题

猜你喜欢

转载自www.cnblogs.com/deepdarkdeveloper/p/10109054.html