创建时E11000重复密钥错误集合



我正在用typescript和mongodb(使用mongose(开发一个聊天系统创建新消息时,我收到以下错误:

E11000重复密钥错误集合:test.messages索引:user.username_1重复密钥:{user.username:null}

我在消息集合中为用户使用引用,我不明白这个错误是从哪里来的。

架构:

const user = new Schema({
username: { type: String, unique: true, required: true },
email: { type: String, unique: true, required: true },
password: { type: String, required: true}
});

const message = new Schema({
userId: { type: Schema.Types.ObjectId, ref: 'user', required: true},
message: { type: String, required: true},
timestamp: { type: Date, default: Date.now }
});

export const User = model('User', user);
export const Message = model('Message', message);

user.ts(模型文件(

export class MUser {
readonly _id: string;
readonly username: string;
readonly email: string;
readonly password: string;
}

message.ts(模型文件(

export class MMessage {
readonly userId: string;
readonly message: string;
readonly timestamp: Date;
}

我用来创建文档并返回错误的函数:

async createMessage(user: MUser, msg: string) {
await Message.create({userId: user._id, message: msg});
}

我不认为userId是唯一的。我在这里错过了什么?

谢谢!

删除集合并尝试使用新的架构,它应该可以工作。

最新更新