我在做一个节点微服务,orm 和 db 分别是typeorm和postgresql
我正在尝试创建jsonb数组列,但我可能没有以正确的方式进行。
笔记
jsonboder 中的类型,以便能够在不满足架构更改的情况下修改接口。array: truecolumn 选项。我尝试了几次使用普通jsonb对象但没有成功 ( "{}"::jsonb)。我的目标:
存储具有索引 id列的对象数组,并能够添加和删除 id。如果这是不可能的,则可以使用平面索引字符串数组。
例如:
[ {id: 'some-uuid-000'}, {id: 'some-uuid-001'}, ... ]
或者:
['some-uuid-000', 'some-uuid-001', 'some-uuid-002']
代码:
我的列定义:
@Column({
type: 'jsonb',
array: true,
default: () => 'ARRAY[]::jsonb[]',
nullable: false,
})
public users: Array<{ id: string }> = [];
Run Code Online (Sandbox Code Playgroud)
我设法获取空数组
const group = await repo.findOneOrFail({ id: groupId });
console.log('>>>>>', group.users);
Run Code Online (Sandbox Code Playgroud)
输出: …
我试图将两个字段添加到我所有的学说生成实体中来处理日期(date_created 和 date_modified)。
请参阅当前的 yml 以供参考
`Project\PasswordRecovery:
type: entity
table: PasswordRecovery
lifecycleCallbacks:
prePersist: [ prePersist ]
indexes:
fk_PasswordRecovery_User_idx:
columns:
- user_id
id:
id:
type: integer
generator:
strategy: AUTO
fields:
date_created:
type: datetime
nullable: false
columnDefinition: 'TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP'
options:
default: CURRENT_TIMESTAMP
date_modified:
type: datetime
nullable: false
columnDefinition: 'TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'
options:
default: CURRENT_TIMESTAMP
token:
type: text
nullable: true
user_id:
type: integer
nullable: true
manyToOne:
users:
targetEntity: User
inversedBy: passwordRecoveries
joinColumn:
name: user_id
referencedColumnName: id
Run Code Online (Sandbox Code Playgroud)
我的问题: …
doctrine ×1
doctrine-orm ×1
mysql ×1
node.js ×1
orm ×1
php ×1
postgresql ×1
symfony ×1
typeorm ×1
typescript ×1