我正在使用括号表示法基于字符串变量更新子文档。用户的花名册将针对美式足球赛季的不同季节和星期进行更新。在提取数据的同一数据库请求中,是否有办法为用户动态更新子文档?
我能够执行FindOne,然后在架构中更新整个名册对象,但并非没有先从数据库中提取数据并对其进行操作。
我认为我遇到的问题来自'$set': { 'roster[season][week]'
中的db.UserRoster.findOneAndUpdate
const dummyRoster2 = {
QB: 7549,
RB1: 8102,
RB2: 5940,
WR1: 5946,
WR2: 6477,
Flex: 9910,
TE: 7485,
K: 8003
};
const updatedRoster = await db.UserRoster.findOneAndUpdate({ userId: userId }, { '$set': { 'roster[season][week]': dummyRoster2 } }, { new: true });
模式-可以在不同的时间访问季节和星期。
const UserRosterSchema = new Schema({
userId: {
type: String,
unique: true,
required: true
},
roster: {
'2019-2020-regular': {
usedPlayers: [Number],
'1': {
QB: {
type: Number,
default: 0
},
RB1: {
type: Number,
default: 0
},
RB2: {
type: Number,
default: 0
},
WR1: {
type: Number,
default: 0
},
WR2: {
type: Number,
default: 0
},
Flex: {
type: Number,
default: 0
},
K: {
type: Number,
default: 0
}
},