我正在使用Java驱动程序3.5。 我正在以以下格式发出mongoDB请求。
FindIterable<Document> findIterable = collection.find(query);
我看到它只是给我一个FindIterable。但是,我试图找出哪台机器可以满足我的要求。我正在运行三个副本,并且正在从本地数据中心读取以减少延迟。但我想看看请求是否实际上要发送到本地辅助副本集。我想注销它,以便对调试网络问题有用。
我发现我可以从mongoDB服务器(mongodb: how to check which node I connected on replicaSet ),但我正在使用Java驱动程序的应用程序中查找此信息,以便我可以记录每个请求或遇到问题时的信息。
我还注意到我可以在find之后使用explain命令找到它。使用如下所示的内容:
find(query.modifiers(new Document("$explain",true))
但是,这需要单独的调用来查找服务器并发出查找请求。我希望有比这更好的方法。
这可能吗?