【问题标题】:How to index(elasticsearch) a specific collection of a specific db of mongodb using transporter?如何使用传输器索引(弹性搜索)特定 MongoDB 数据库的特定集合?
【发布时间】:2019-07-18 02:43:31
【问题描述】:

我想使用传输器在弹性搜索中仅索引特定的 mongodb 集合。 Mongodb 服务器有多个具有多个集合的数据库。我不想索引整个数据库。

【问题讨论】:

    标签: mongodb elasticsearch compose-db


    【解决方案1】:

    如果只想复制 my_instance 集合中的文档,请使用管道中的命名空间过滤器,即

    var source = mongodb({
        "uri": "mongodb://172.31.38.157:27017/STOREDB",
        "timeout": "30s",
        "read_preference": "Primary"
    })
    
    var sink = elasticsearch({
        "uri": "http://172.31.38.157:9200/INDEX_NAME" 
    })
    
    t.Source("source", source, "/^my_instance$").Save("sink", sink, "/.*/")
    

    此外,如果您只需要来自选定集合的特定数据,collection_filters 设置将转换为 mongodb 查询。下面被注释掉的示例将仅包括 i 字段的值大于 10 的文档。

    var source = mongodb({
      "uri": "mongodb://127.0.0.1:27017/test"
      // "timeout": "30s",
      // "tail": false,
      // "ssl": false,
      // "cacerts": ["/path/to/cert.pem"],
      // "wc": 1,
      // "fsync": false,
      // "bulk": false,
      // "collection_filters": "{\"foo\": {\"i\": {\"$gt\": 10}}}"
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      • 1970-01-01
      • 2019-12-04
      • 2017-08-15
      • 1970-01-01
      • 2019-01-11
      • 1970-01-01
      相关资源
      最近更新 更多