Node.js CastError-无法$设置内部数组为空的对象-mongoose nodejs
我不熟悉Mongo和node.js,推送包含空数组的对象时遇到了一个问题 我有一个有一系列用户的卡片模型 卡片: 我使用的另一个模型是匹配模型: 匹配: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
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"