我想使用传输器在弹性搜索中仅索引特定的 mongodb 集合。Mongodb 服务器有多个具有多个集合的数据库。我不想索引整个数据库。
问问题
404 次
1 回答
0
如果只想复制 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}}}"
})
于 2019-07-17T18:43:31.653 回答