mongoose 创建表报错

表模型

const mongoose = require("mongoose")

const groupChatSchema = new mongoose.Schema({
    groupID: { type: mongoose.Schema.Types.ObjectId, ref: "group" },
    msg_list: [
        { "msg": String, "type": String, "belong": { type: mongoose.Schema.Types.ObjectId, ref: "User" }, "date": { type: Date, default: Date.now() } }
    ]
})
module.exports = mongoose.model("groupChat", groupChatSchema);

创建表


exports.saveChat = async data => {
    let { id, message, token, type, chatType } = data
    let tokenRes = verifyToken(token)

    chatRes = await GroupChat.create({
                "groupID": id,
                "msg_list": [
                    { msg: message, type, belong: tokenRes.id, date: new Date() }
                ]
            })
}

报错信息

(node:15076) UnhandledPromiseRejectionWarning: ValidationError: groupChat validation failed: msg_list.0: Cast to string failed for value "{
  msg: '阿斯顿发送到',
  type: 'text',
  belong: '5ee4bd5bff3af343004f224c',
  date: 2020-07-06T07:08:38.763Z
}" at path "msg_list", msg_list: Cast to Array failed for value "[
  {
    msg: '阿斯顿发送到',
    type: 'text',
    belong: '5ee4bd5bff3af343004f224c',
    date: 2020-07-06T07:08:38.763Z
  }
]" at path "msg_list"
    at model.Document.invalidate (D:\项目\uniapp\chat\chat_server\node_modules\mongoose\lib\document.js:2564:32)
    at model.$set (D:\项目\uniapp\chat\chat_server\node_modules\mongoose\lib\document.js:1239:12)
    at model._handleIndex (D:\项目\uniapp\chat\chat_server\node_modules\mongoose\lib\document.js:979:14)
    at model.$set (D:\项目\uniapp\chat\chat_server\node_modules\mongoose\lib\document.js:920:22)
    at model.Document (D:\项目\uniapp\chat\chat_server\node_modules\mongoose\lib\document.js:137:12)
    at model.Model (D:\项目\uniapp\chat\chat_server\node_modules\mongoose\lib\model.js:106:12)
    at new model (D:\项目\uniapp\chat\chat_server\node_modules\mongoose\lib\model.js:4695:15)
    at D:\项目\uniapp\chat\chat_server\node_modules\mongoose\lib\model.js:3074:22
    at D:\项目\uniapp\chat\chat_server\node_modules\mongoose\lib\model.js:3110:7
    at Array.forEach (<anonymous>)
    at D:\项目\uniapp\chat\chat_server\node_modules\mongoose\lib\model.js:3109:15
    at D:\项目\uniapp\chat\chat_server\node_modules\mongoose\lib\helpers\promiseOrCallback.js:31:5
    at new Promise (<anonymous>)
    at promiseOrCallback (D:\项目\uniapp\chat\chat_server\node_modules\mongoose\lib\helpers\promiseOrCallback.js:30:10)
    at Function.create (D:\项目\uniapp\chat\chat_server\node_modules\mongoose\lib\model.js:3044:10)
    at exports.saveChat (D:\项目\uniapp\chat\chat_server\controllers\c_chat.js:121:39)
(node:15076) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:15076) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

有哪个大佬懂得怎么解决这个问题?

阅读 1.8k
1 个回答

你传进去的数据和你的模型数据类型不匹配
msg_list

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进