我正在尝试按照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