我在用于MongoDB的NestJS和TypeORM中有这种奇怪的行为。
当我用this.repo.save(newEntity);
创建一个新实体时,数据会保存到MongoDB中。但是,我也得到了错误cannot read property “createValueMap()” of undefined.
。
有解决办法吗?
解决代码中问题的是@ObjectIdColumn
装饰器。我希望这能帮助到别人。
import { BaseEntity, Column, Entity, ObjectID, ObjectIdColumn } from "typeorm";
import { TaskStatus } from "./tasks-status.enum";
@Entity()
export class Task extends BaseEntity {
@ObjectIdColumn()
_id: ObjectID;
@Column()
title: string;
@Column()
description: string;
@Column()
status: TaskStatus;
}
TypeOrm
从来不是为处理mongo而创建的,它有一些非常小的错误,但您可以尝试为您的模式创建ObjectID
import { ObjectID } from 'mongodb'
export const toObjectId = (value: string | ObjectID): ObjectID => {
return typeof value === 'string' ? new ObjectID(value) : value
}
使用它来创建一个新的objectId。此外,检查objectId是否应该是HexaDecimal