mongodb - ValidationError: user: Cast to Embedded 值“[]”失败
问题描述
我正在尝试使用 expressjs 和猫鼬将新消息插入数据库。
但是我在这个过程中得到了一个 ValidationError 。在控制台打印以下内容。
存储消息时出错 ::: ValidationError: user: Cast to Embedded 路径“user”处的值“[]”失败
代码如下:
socketAPI.io.on('connection', function(socket){
socket.on('chat-sent', function(param) {
ChatUser.find({username : param.username}).then(async (usr)=>{
if(usr){
try{
var mess = new GroupMessage();
mess.group = (await Group.findOne({name : groupName}));
mess.message = param.message;
mess.user = usr;
mess.save((err)=>{
if(err){
console.log('error while storing message ::: '+err);
}
else{
console.log('message succesfully stored');
}
});
}catch(err){
console.log('error collecting group ::: '+err);
}
}
});
socket.emit('group-message-handled', { user : param.username, message : param.message});
});
});
插入代码使用以下模型:
var userSchema = new mgoose.Schema({
username : {
type : String,
required : true,
unique : true,
maxlength : [15, 'Too long username. Max 15 allowed']
},
name : String
});
var groupSchema = new mgoose.Schema({
name : {
type : String,
required : true,
unique : true
},
categories : [String]
});
var groupMessageSchema = new mgoose.Schema({
user : userSchema,
group : groupSchema,
message : {
type : String,
required : true,
minlength : 1
}
});
var ChatUser = mgoose.model('ChatUser', userSchema);
var Group = mgoose.model('Group', groupSchema);
var GroupMessage = mgoose.model('GroupMessage', groupMessageSchema);
是什么导致了这个错误,我该如何解决?
解决方案
推荐阅读
- android - queryIntentActivities 使用相同的代码返回不同的结果
- jenkins - 当构建队列被取消时,有没有办法发送电子邮件?
- karate - 标记或值放在带有额外括号的 var 中
- typescript - 带有任意数量参数的函数,后跟 TypeScript 中的回调
- python - 无法正确地将 pandas 索引转换为日期时间
- powershell - Invoke-RestMethod : 通用传入 webhook 接收到错误的有效负载
- sql-server - MSSQL 2012 - 在表格、数据透视表中逐小时跟踪零件编号?
- javascript - html表单内的模态
- reactjs - 如何更新事件的 useCallback 挂钩
- git - 一切都是最新的,但承诺不为空