2

我在尝试从 mongoDB 数据库在 Kibana 上设置仪表板时遇到问题。

问题发生在复合索引上。我在 mongoDB 中有一个带有复合索引的集合:

sale : {"_id" : {"date" : Date, 
                 "country" : String, 
                 "game_id" : String }, 
        "field_1" : String, 
        "field_n" : String}

我正在尝试使用 mongoDB 文档的 _id 字段中的日期生成 Kibana 仪表板。

为了从 Kibana 访问 mongoDB 数据库,我使用了 mongo-connector elastic2,一切似乎都正常,因为我可以在 Kibana 中正确查看所有字段以及文档。但是 _id 没有被解释,它显示为一个字符串而不是 3 个字段。

_id:{'game_id': 'com.id.game', 'date': datetime.datetime(2016, 6, 22, 0, 0), 'country': 'DZ'}

我想要的是让 Kibana 知道 _id 不是字符串,即字符串(game_id)、日期(日期)和字符串(国家),并让我使用日期字段作为报告的字段,但我到目前为止没有成功。

有谁知道我该怎么做?,非常感谢您。

4

1 回答 1

2

根据 elastic _id 的官方文档,它是每种类型的保留关键字,它代表每个文档的唯一标识符。_id 和 _index、_type、_uid 是类型的元字段

如果您想保留您的 _id json 对象,您可以使用 mongo-elastic 命名空间配置将 mongo 中的这个 _id 映射到 elastic 中的一些新字段,如下所示

{
  "namespaces": {
    "include": ["document_type._id"],
    "mapping": {
      "document_type._id": "document_type.mongo_id"
    }
  }
}

或类似的命令-n company.employees -g company.new_employees

谢谢

于 2017-03-14T07:35:16.960 回答