我们需要将我们的nodejs应用程序日志保存为MongoDB上的记录。 我们应该创建的大多数记录,但是有些记录只需要更新即可。
我们要使用Fluentd。我看到它可以选择向mongo插入日志,但是我找不到更新现有记录的方法。
有没有办法做到这一点?
这是我当前的td-agent.conf(仍在开发中):
thread::join()
答案 0 :(得分:1)
查看流利的mongo插件的documentation和code,看来它不支持更新/更新操作。
当前,它仅执行insert_many
操作。
get_collection(database, collection, @collection_options).insert_many(records)
https://github.com/fluent/fluent-plugin-mongo/blob/master/lib/fluent/plugin/out_mongo.rb#L265
一种选择是使用update_many
(或批量上传)操作在此存储库上创建功能请求或提取请求,但这要求您在每个文档插入中发送更新字段。
更新-还有其他工具吗?。
我可以想到logstash,但即使它也打开了许多功能请求,以支持对MongoDB的更新/更新。
https://github.com/logstash-plugins/logstash-output-mongodb/issues/16
当您检查以上链接注释时,建议您对于日志存储通常不希望执行更新操作。
我要说的是,首先要重新设计更新日志的方法,否则将创建一个自定义应用程序(Java,NodeJS,Python或.NET Core),该应用程序可以执行更新操作(替换有效内容或从有效内容传播到自定义应用程序再到mongodb)。