无法为猫鼬模型设置自定义集合名称

时间:2021-03-27 16:10:18

标签: node.js mongodb mongoose

我阅读了手册 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)

我发现有两件事是错误的:

  1. 我没有创建 userList 个集合,而是创建了 users 个集合。
  2. 在我的架构中,我定义了 number 属性,它不会在创建新记录时保存。

我不确定这是否是预期的行为,但我故意没有在我的架构中定义电子邮件字段,但是当我将此类属性添加到模型中时,我将其保存。

这是我得到的:

enter image description here

0 个答案:

没有答案