给出一个简单的Foo
实体,该实体又在mongodb中包含Bar
个对象的集合
仅当列既是数组又是嵌入式对象时才出现问题。
@Entity()
export class Foo {
@ObjectIdColumn()
public id: ObjectID;
@Column()
public simple: string;
@Column(type => Bar)
public collection: Bar[];
}
export class Bar {
@Column()
value: boolean;
}
repository.create
转换原始值
{
"simple": "string",
"collection": [
{ "value": true },
{ "value": false }
]
}
简单地
{ "simple": "string" }
我刚刚从https://github.com/typeorm/typeorm/issues/2342那里拿走了,但同样的事情也在我端上发生
答案 0 :(得分:1)
显然,这是typeorm中的bug。解决方法是,您可以手动设置集合,直到问题解决为止:
async createFoo(createFooDto) {
const newFoo = await this.repository.create(createFooDto);
// TODO: Remove when https://github.com/typeorm/typeorm/issues/1980 is solved
newFoo.collection = createFooDto.collection;
this.repository.save(newFoo);
}
如果这是一种回归分析(曾经起作用),则可以尝试将typeor降级,直到修复为止。