【发布时间】:2021-02-19 17:43:32
【问题描述】:
我将数据存储在本地 Node JS Elastic Search 数据库中,现在我已插入记录,其中一个字段是 created_at 字段,我使用 new Date() 存储了该字段,但是,在检索数据,似乎这些是字符串,因此我的查询似乎没有返回任何结果。
我的数据如下:
{
"_index": "my_table",
"_type": "_doc",
"_id": "V1mouXcBt3ZsPNCwd3A1",
"_version": 1,
"_seq_no": 0,
"_primary_term": 1,
"found": true,
"_source": {
"properties": {
"created_at": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"updated_at": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
},
"data": {
"name": "performance_overview",
"friendly_name": "Performance Overview",
"data": {
"cached": "9:39:21am",
"from": "02/19/2021 00:00:00",
"to": "02/19/2021 23:59:59",
"success": true,
"message": "message",
"sessions": "265",
"leads": "123",
"conversion_rate": "46.42"
},
"created_at": "2021-02-19 09:02:16",
"updated_at": "2021-02-19 09:02:16"
}
}
}
我正在使用 Moment JS,并已格式化日期,并尝试了我认为对字段映射准确的方法,尽管我是 Elastic Search 的新手,这似乎也没有返回任何结果。
const from = moment(from).startOf('day')
const results = await elastic.find('my_table', {
query: {
range: {
created_at: {
gte: moment(from).format('YYYY-MM-DD HH:MM:SS'),
}
}
}
})
elastic.find 是我编写的自定义函数,如下所示,是从另一个 JS 文件中导出的:
const find = async (table, data) => {
try {
const found = await client.search({
index: table,
body: data
}, {
ignore: [404],
maxRetries: 3
})
return found.body
} catch (err) {
return err
}
}
【问题讨论】:
标签: javascript node.js elasticsearch