当前位置: 首页 > 知识库问答 >
问题:

使用TypeForm将类型对象的值保存到MongoDB

堵浩波
2023-03-14

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

这是我的TypeForm数据库配置

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();

我得到这个错误

无法读取未定义的属性属性属性名称

执行数据库实体的保存功能时。似乎我无法将类型object的值存储到数据库中。有什么解决办法吗?

共有2个答案

薛滨海
2023-03-14

您可以尝试NestJS对MongoDB的支持。

TypeORM具有基本的MongoDB支持。TypeORM的大部分功能都是RDBMS特有的,本页包含所有MongoDB特有的功能留档. typeorm文档。

相反,尝试使用NestJS方法。他们为MongoDB构建了一个模块,它需要编写更多的代码,但比Typeorm更适合mongo。它使用npm猫鼬包。我目前使用这个,它工作得很好,也不难实现。

这是他们在NestJS/MongoDB上的文档。MongoDB | NestJS

希望这对你有帮助!

干弘深
2023-03-14

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

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

@Entity()
export class Mapping {

    @ObjectIdColumn()
    key: ObjectID;

    @Column()
    value: ;
}

定义实体和列与关系数据库中的定义几乎相同,主要区别在于必须使用@objecticcolumn而不是@PrimaryColumn@primaryceneratedcolumn

打字蒙戈文件

 类似资料:
  • 背景:对于我的用户,我需要存储一对相同的对象类型(设置),目前我有它像 我正在创建带有设置的KeyValueTypes,并将其添加到列表中(每个用户都有一个列表)。我的设置有一个值字段(它显示了它们是否比其他设置“更重要”),所以我希望基于该字段添加它们,稍后我还需要基于该字段(可能还需要基于名称字段)进行搜索--所以搜索将不得不在列表中查找,然后在KeyValueTypes中查找 问题:什么是最

  • 问题内容: 我已经创建了一个JSON文件,并且需要能够通过电子邮件与其他协作者共享该文件。但是,尽管在R工作区中有许多处理JSON对象的主题,但实际上没有资源讨论如何实际将JSON对象导出到.JSON文件。 这是一个简单的例子: 最后一行,尝试读取JSON文件,导致错误:“ fromJSON(file =“ export.JSON”)中的错误:意外字符’R’” 显然,save()函数并不是可行的方

  • 当我保存以下实体时,它在另一个对象中复制相同的值: 例如,在我的struts项目(屏幕)中,如果我更改shipmentShipper字段的值,那么Shipment收货人也将使用相同的值进行更新。 实体: 仓库类: JSP中的字段映射(工作正常): 请检查屏幕截图,我将发货人更改为C4并保存。收货人也被选为C4。请注意,两个选择都使用相同的数据列表填充。(客户名单)

  • 问题内容: 我正在尝试使用适用于AWS的新boto3客户端做一个“ hello world” 。 我的用例非常简单:从S3获取对象并将其保存到文件中。 在boto 2.XI中,它应该是这样的: 在boto 3中。我找不到一种干净的方法来做同样的事情,所以我手动遍历了“ Streaming”对象: 要么 而且效果很好。我想知道是否有任何“本机” boto3函数可以完成相同的任务? 问题答案: Bot

  • 我正在尝试为AWS的新boto3客户端做一个“hello world”。 我的用例相当简单:从S3获取对象并将其保存到文件中。 在boto 2.X中,我会这样做: 在博托3。我找不到一种干净的方法来做同样的事情,所以我手动迭代“流”对象: 或 而且效果很好。我想知道是否有任何“本机”boto3函数可以完成相同的任务?

  • 问题内容: 我想将一个对象保存到文件中,然后轻松地从文件中读取它。作为一个简单的示例,可以说我有以下3d数组: 是否有一个简单的Ruby API,无需编程解析器即可解释文件中的数据,就可以用来实现此目的?在示例中,我给出了一个简单的例子,但是随着对象变得越来越复杂,使对象持久化变得很烦人。 问题答案: 参见元帅:http : //ruby- doc.org/core/classes/Marshal