1 mongodb连接数据库和集合以后。会自动给集合的名称加上一个s。
这个惊天操作直接废了我一上午
//db/index.js
const mongoose=require("mongoose")
const connectDb=()=>{
mongoose.set('strictQuery', true)
mongoose.connect("mongodb://127.0.0.1:27017/students",{
useNewUrlParser:true
}).then(()=>{
console.log("数据库连接成功")
}).catch(err=>{
console.log("数据库连接失败")
})
}
module.exports=connectDb
//models/index.js
const Mongoose=require("mongoose")
const userSchema=new Mongoose.Schema({
username:String,
password:String,
age:{
type:Number,
required:false,
}
})
const User=Mongoose.model("user",userSchema)
module.exports={
User
}
注意这里:const User=Mongoose.model("user",userSchema,"user")明明连接的是user表。该表有数据,但是最后查询的时候发现数据一条没有。经过排查。发现他自动给集合名称添加了一个s,最后发现解决方案是给model添加第三个参数:就是你想要的名称。比如就想要连接user表,那需要在model第三个参数添加名称
const User=Mongoose.model("user",userSchema)