我正在尝试按照typegooseTaskOutcome
文档在我的Task
模型中保存一组子文档:
import { prop } from '@typegoose/typegoose';
class TaskOutcome {
@prop({ required: true }) public inputId: string;
@prop() public label?: string;
@prop() public value?: string;
}
export class Task {
@prop() public _id: string;
...
@prop({ _id: false, type: () => [TaskOutcome] })
public outcomes: TaskOutcome[];
}
@Injectable()
export class TaskService {
constructor(
@InjectModel(Task) private readonly model: ReturnModelType<typeof Task>,
) {}
public async saveTask(data: TaskDTO) {
console.log(data.outcomes);
const options: QueryOptions = { upsert: true, new: true };
const result = await this.model.findByIdAndUpdate(data.id, data, options);
console.log(result.outcomes);
}
}
当我保存一个任务文档时,它的所有道具都按预期保存,除了outcomes
数组子文档。相反,我得到的只是一个空对象数组。因此,即使console.log
上面的第一个向我显示了正确的输入数据,第二个console.log
也给了我[{},{},{}]
(在检查数据库时确认)。
有什么明显的我做错了吗?
我正在使用@nestjs/core@8.2.4
, @typegoose/typegoose@9.3.1
,nestjs-typegoose@7.1.38
和mongoose@6.1.2