我想减少rs.status()方法的输出,因此只显示来自每个成员的name、stateStr和optimeDate。有没有办法做到这一点?rs.status()只是被某个地方的某个集合支持,它是什么,我如何直接查询它。实际上我想要的是...
PRIMARY> rs.status().pretty( {members.name: 1, members.stateStr: 1, members.optimeDate: 1 } );
{
"name" : "mongo1.rek.tc",
"stateStr" : "PRIMARY",
"optimeDate" : ISODate("2012-09-06T17:28:19Z")
},
{
"name" : "mongo2.rek.tc",
"stateStr" : "SECONDARY",
"optimeDate" : ISODate("2012-09-06T17:28:14Z")
},
{
"name" : "mongo3.rek.tc",
"stateStr" : "SECONDARY",
"optimeDate" : ISODate("2012-09-06T17:28:15Z")
}
3条答案
按热度按时间af7jpaap1#
你不能对$cmd名称空间使用投影。我试着从助手翻译查询,即:
它还是不让我预测结果。即使这是可能的,投射返回数组的多个子元素(成员是一个数组)也不太好用,所以即使投射工作,你也会有问题。
你可以用一点简单的JavaScript来做到这一点。下面的工作,但你可能想添加更多的格式和字段名称,如果它对你有用:
m1m5dgzv2#
从命令行:
vh0rcniy3#
你不需要JavaScript或Linux,你可以尝试