在linux下,使用mongo-connector将mongodb的数据传输至es

背景:

在linux下,使用mongo-connector将mongodb的数据传输至es

遇到的问题:

使用如下命令启动mongo-connector

img


启动后,查看日志,发现提示如下错误:

img

求解

这个错误可能是因为 MongoDB 的版本不同导致的。在一些老版本的 MongoDB 中,IDatabase 接口没有 collection_names() 方法。如果您的 MongoDB 版本比较老,可以尝试在 database_names() 方法后面使用 filter() 方法来获取指定数据库中的所有集合名称,例如:

collections = client['mydatabase'].list_collection_names()
my_collection = client['mydatabase'][list(filter(lambda x: x == 'mycollection', collections))[0]]

将上面的代码中的 mydatabasemycollection 修改为您想要操作的数据库和集合名称即可。注意,如果指定的集合不存在,上面的代码将会引发 IndexError 异常,请确保您的集合名称是正确的。