【发布时间】:2021-10-21 08:31:45
【问题描述】:
我想从 elasticsearch 获取一些日志数据并使用 graphql 将其返回到 UI。 我在我的nest.js 后端使用nestjs/elasticsearch 客户端,它是'elastic/elasticsearch' 的包装器。 我还将弹性搜索索引中的时间戳字段映射为“日期”。
"mappings": {
"properties": {
"timestamp": {
"type": "date"
},
"message": {
"type": "keyword"
},
}
}
我已经按如下方式创建了@ObjectType 类:
@ObjectType()
export class LogMessage {
@Field()
message: string;
@Field()
timestamp: Date;
}
但是,在从 Elasticsearch 获取文档时,时间戳作为“字符串”返回。
因为ObjectType 期望'timestamp' 是一个日期,所以我在'graphql' 对'timestamp' 字段的响应中得到'null'。
更改为 'timestamp: string',我在响应中看到了时间戳。
如何调试此问题并确保 elasticsearch 客户端将“时间戳”作为“日期”返回? 要么 这是预期的行为,我需要手动将字符串转换为 Date 类型吗?
【问题讨论】:
标签: node.js elasticsearch nestjs