关于Mongodb的命名问题

来源:4-2 mongoose(2)

wykun

2018-10-30

老师.我发现您在讲课时所讲的一个问题.
文件名并不意味着设置就会将Mongodb的数据表设置,它是和model有关系的

测试如下:
1.首先定义一个test.js文件
dbs/models/test.js

const mongoose = require('mongoose')

// schema就是相当于建表
let testSchema = new mongoose.Schema({
  name: String,
  age: Number
})

module.exports = mongoose.model('testtttt', testSchema)
  1. 引入model
    routes/users.js
const Test = require('../dbs/models/test')
// add test
router.post('/addTest', async function(ctx) {
  const person = new Test({
    name: ctx.request.body.name,
    age: ctx.request.body.age
  })
  let code
  try {
    await person.save()
    code = 0
  } catch (error) {
    code = -1
  }
  ctx.body = {
    code
  }
})
  1. 发送请求
curl -d 'name=hahahhah&age=11' http://localhost:3000/users/addTest
  1. 查看数据库的表名
    图片描述

从这张图片可以看到,数据库表的名和models目录下的文件并无关联,而是与定义model的时候的参数相关联.并且,其规律是加s

写回答

1回答

快乐动起来呀

2018-10-30

嗯呢,虽然文件名和model名可以不一致,但是有个不成文的规定就是两者统一,这样根据文件名就可以区分model,collection和这个名称的关系是复数关系,你看下person的复数是people,不过你琢磨的很仔细,非常棒

0
1
wykun
非常感谢!
2018-10-30
共1条回复

Vue全家桶+SSR+Koa2全栈开发美团网

整合大前端8项技术,全面晋级全栈工程师,毕设/面试作品

2445 学习 · 1638 问题

查看课程