我使用官方node.js mongodb客户端通过类似于的连接字符串执行针对集群的Mongo查询:
mongodb://euwest1-01,euwest1-02,uswest2-01/dbname?replicaSet=mycluster&readPreference=nearest.如您所见,我在我的群集中包含一些不同的地理位置实例,"最近"应该保证选择正确的副本.
不过,我想知道哪一个用于执行任何查询,以便我可以在每个操作中包含用于执行查询的mongo副本.
黑客攻击Cursor对象,我可以用hacky方式得到我想要的东西:
const find = (query, callback) => {
let cursor = coll.find(query);
cursor.toArray((err, items) => {
console.log(cursor.server.ismaster.me);
callback(err, items);
});
};
Run Code Online (Sandbox Code Playgroud)
但是我觉得这可以在任何时候打破不记录+似乎局限于光标互动(所以我不知道如何实现一个同样的findOne方法).
有人知道干净的方法吗?