Node.js CastError-无法$设置内部数组为空的对象-mongoose nodejs

Node.js CastError-无法$设置内部数组为空的对象-mongoose nodejs,node.js,arrays,mongodb,mongoose,Node.js,Arrays,Mongodb,Mongoose,我不熟悉Mongo和node.js,推送包含空数组的对象时遇到了一个问题 我有一个有一系列用户的卡片模型 卡片: 我使用的另一个模型是匹配模型: 匹配: const mongoose = require('mongoose'); const Schema = mongoose.Schema; const User = require('../user/userModel').schema const Card = require('../card/cardModel').schema cons

我不熟悉Mongo和node.js,推送包含空数组的对象时遇到了一个问题

我有一个有一系列用户的卡片模型

卡片:

我使用的另一个模型是匹配模型:

匹配:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const User = require('../user/userModel').schema
const Card = require('../card/cardModel').schema

const matchSchema = new Schema({
    name: { type: String, required: true, min: 6, max: 255 },
    registrationDate: { type: Date, default: Date.now },
    lastAccess: { type: Date, default: Date.now },
    endDate: { type: Date },
    narrator: { type: User, required: false },
    cards: { type: [Card], required: false, default: [] },
    users: { type: [User], required: false, default: [] },
    goal: { type: Number, required: false, default: 30},
    actualPlayers: { type: Number, required: false, default: 0},
    expectedPlayers: { type: Number, required: true },
    cardsOnTable: { type: [Card], default: []}
});

module.exports = mongoose.model('Match', matchSchema);
我正在尝试的是从数据库中获取具有此功能的所有卡

function getCards() {
    return Card.find().exec();
}

并将这些卡设置为已创建的匹配,我正在使用以下功能方式:

function setCards(matchName, cards) {
    return Match.updateOne({ name: matchName }, { $set: { cards: cards } }).exec();
}
但当我尝试调用它时,由于以下错误,数组未设置:

CastError: Cast to embedded failed for value "{\n' +
  '  selected: [],\n' +
  '  _id: 5fb9493456bb1132299bb79b,\n' +
  "  name: 'TestCard18',\n" +
  "  picture: 'test18.png',\n" +
  '  __v: 0\n' +
  '}" at path "cards"

[...]

  reason: CastError: Cast to Array failed for value "[]" at path "selected"

有人知道如何以不同的方式修复或管理数组吗?

使用您喜爱的调试器或打印语句检查变量值,并验证它们是否符合您的期望。
CastError: Cast to embedded failed for value "{\n' +
  '  selected: [],\n' +
  '  _id: 5fb9493456bb1132299bb79b,\n' +
  "  name: 'TestCard18',\n" +
  "  picture: 'test18.png',\n" +
  '  __v: 0\n' +
  '}" at path "cards"

[...]

  reason: CastError: Cast to Array failed for value "[]" at path "selected"