gpt4 book ai didi

mongodb - 使用 TypeORM 将类型对象的值保存到 MongoDB

转载 作者:行者123 更新时间:2023-12-02 16:54:54 28 4
gpt4 key购买 nike

我想使用 TypeORM 将键值对存储到 MongoDB。我的后端 API 是用 NestJs 制作的(不确定这是否重要)。键的类型为string,值的类型为object,因为我想将任何内容存储到该对象中。

这是我的 TypeORM 数据库配置

TypeOrmModule.forRoot({
type: 'mongodb',
host: 'localhost',
port: 27017,
database: 'nest',
entities: [`${__dirname}/**/*.entity.{ts,js}`],
synchronize: true,
}),

我的映射实体不会自动生成 key ,因为我想自己设置它

@Entity()
export class Mapping extends BaseEntity {
@PrimaryColumn()
key: string;

@Column()
value: object;
}

当我想将新映射保存到数据库时,我运行此逻辑(无论在哪里)

  const newMapping: Mapping = new Mapping();
newMapping.key = 'foobar';
newMapping.value = { foo: 'bar' };
await newMapping.save();

我收到此错误

TypeError: Cannot read property 'propertyName' of undefined

执行数据库实体的save函数时。看来我无法将 object 类型的值存储到数据库中。有什么解决办法吗?

最佳答案

使用 TypeORM + Mongo 时,您的实体必须使用 ObjectIdColumn 装饰器装饰其 ID 列,例如

从“typeorm”导入{Entity, ObjectID, ObjectIdColumn, Column};

@Entity()
export class Mapping {

@ObjectIdColumn()
key: ObjectID;

@Column()
value: ;
}

Defining entities and columns is almost the same as in relational databases, the main difference is that you must use @ObjectIdColumn instead of @PrimaryColumn or @PrimaryGeneratedColumn.

TypeORM Mongo Docs

关于mongodb - 使用 TypeORM 将类型对象的值保存到 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60208654/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com