插入后用于MongoDB崩溃的NestJS TypeORM



我在用于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

最新更新