mongodb - 使用 TypeORM 将类型对象的值保存到 MongoDB
问题描述
我想使用 TypeORM 将键值对存储到 MongoDB。我的后端 API 是用 NestJs 制作的(不确定这是否重要)。键是类型string
,值是类型object
,因为我想将任何内容存储到该对象。
这是我的 TypeORM 数据库配置
TypeOrmModule.forRoot({
type: 'mongodb',
host: 'localhost',
port: 27017,
database: 'nest',
entities: [`${__dirname}/**/*.entity.{ts,js}`],
synchronize: true,
}),
我的映射实体不会自动生成密钥,因为我想自己设置它
@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:无法读取未定义的属性“propertyName”
在执行save
数据库实体的功能时。似乎我无法将类型的值存储object
到数据库中。有什么解决方案吗?
解决方案
您可以尝试 NestJS 对 MongoDB 的支持。
TypeORM 具有基本的 MongoDB 支持。大多数 TypeORM 功能是 RDBMS 特定的,此页面包含所有 MongoDB 特定的功能文档。typeorm 文档。
而是尝试使用 NestJS 方法。他们为 MongoDB 构建了一个模块,它需要编写更多的代码,但比 Typeorm 更适合 mongo。它使用 npm mongoose 包。我目前使用它,它工作得很好,实施起来并不难。
这是他们在 NestJS / MongoDB 上的文档。MongoDB | 巢穴
希望这对你有帮助!
推荐阅读
- python-3.x - 对处理 csv 文件的函数进行单元测试的最佳方法是什么?
- powershell - get-service:找不到服务名称为“CylanceSvc”的任何服务
- excel - 将 ListObject 传递给数组。类型变量字符串错误
- julia - 如何将双层图像保存到Julia中的文件?
- sublimetext2 - Sublime 文本文件名中出现奇怪的字符串
- google-apps-script - 如何根据特定的单元格值显示/隐藏行?
- rust - 创建连接到共享状态的循环 Tokio 流
- typescript - Merging two observables of the same type results in "unknown" type
- javascript - 将背景颜色分配给数组中的类
- javascript - 发送到后端时图像质量下降