如何在 mongodb 的 rs.status() 上使用 substr 来仅获取主机名

问题描述

我想在 MongoDB 副本集中使用 rs.status() 检索所有没有端口号的主机名。 我尝试了下面的一个,但它没有给出所需的输出

MongoDB Enterprise rsMDB001P:PRIMARY> print([{ $substr: ["$rs.status().members[0].name",13]}])

[object Object]

有人可以纠正我的语法以获得所需的输出吗。

解决方法

试试这个:

rs.status().members.forEach(function (m) { print(m.name.split(":").shift()) }) 

如果您还想跳过主机域,请使用

rs.status().members.forEach(function (m) { print(m.name.split(":").shift().split(".").shift()) })