我阅读了手册 https://mongoosejs.com/docs/guide.html#collection,我认为我做了必要的事情来指定我的自定义集合名称,但它不起作用:
这是我的模型 User.js
:
import mongoose from 'mongoose';
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
number: {
type: Number
}
}, { collection: 'userList' });
export default (mongoose.models?.User || mongoose.model('User', userSchema, 'userList', false));
在我的一个页面中,我通过以下方式创建了一个新记录:
import User from "../models/User";
....
await dbConnect();
const randStr = String(Math.random() * 1000 )
let newUser = new User
newUser.name = 'My name is ' + randStr
newUser.email = 'supercool@' + randStr
newUser.number = 155;
await newUser.save();
console.log(newUser)
我发现有两件事是错误的:
userList
个集合,而是创建了 users
个集合。number
属性,它不会在创建新记录时保存。我不确定这是否是预期的行为,但我故意没有在我的架构中定义电子邮件字段,但是当我将此类属性添加到模型中时,我将其保存。
这是我得到的: