首页 > 解决方案 > 如何在 mongodb 的 rs.status() 上使用 substr 仅获取主机名

问题描述

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

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

[object Object]

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

标签: mongodbaggregationsubstrreplicaset

解决方案


试试这个:

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

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

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

推荐阅读