【问题标题】:NestJS TypeORM for MongoDB Crashing After InsertNestJS TypeORM for MongoDB 在插入后崩溃
【发布时间】:2020-06-19 12:34:27
【问题描述】:
我在 NestJS 和 MongoDB 的 TypeORM 中遇到了这种奇怪的行为。
当我使用this.repo.save(newEntity); 创建一个新实体时,数据将保存到 MongoDB。但是,我也收到错误cannot read property “createValueMap()” of undefined.。
有解决办法吗?
【问题讨论】:
标签:
node.js
mongodb
typescript
nestjs
【解决方案1】:
在我的代码中解决问题的是@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;
}
【解决方案2】:
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