程序员开始学习一门新的语言,编写的第一段程序往往是打印出“hello world!”.
print("Hello world!")
echo "Hello World!"
编程,从hello入门,打印出hello world,表示程序在开发人员手里向人类世界说出了第一句话,你好,世界。对程序来说,开发人员塑造了它全世界的样子。Hello world, 你好,我的全世界。
对mongodb说hello
db.runCommand({hello:1
})db.hello()
hello命令,返回当前mongodb实例的信息。包括当前实例的角色,复制集的配置和节点信息,数据库里配置信息和连接信息等。
db.hello()
//返回结果
{"topologyVersion" : {"processId" : ObjectId("642b972dd6128edf1d22c73b"),"counter" : 7},"hosts" : [ "HOST1:27017", "HOST2:27017" ],"passives" : [ "HOST3:27017" ],"setName" : "replicasetname","setVersion" : 3,"isWritablePrimary" : true,"secondary" : false,"primary" : "HOST1:27017","me" : "HOST1:27017","electionId" : ObjectId("7fffffff0000000000000013"),"lastWrite" : {"opTime" : {"ts" : Timestamp(1704349636, 1),"t" : 19},"lastWriteDate" : ISODate("2024-01-04T14:27:16.000+08:00"),"majorityOpTime" : {"ts" : Timestamp(1704349636, 1),"t" : 19},"majorityWriteDate" : ISODate("2024-01-04T14:27:16.000+08:00")},"maxBsonObjectSize" : 16777216,"maxMessageSizeBytes" : 48000000,"maxWriteBatchSize" : 100000,"localTime" : ISODate("2024-01-04T14:27:18.873+08:00"),"logicalSessionTimeoutMinutes" : 30,"connectionId" : 258342,"minWireVersion" : 0,"maxWireVersion" : 17,"readOnly" : false,"ok" : 1,"$clusterTime" : {"clusterTime" : Timestamp(1704349636, 1),"signature" : {"hash" : BinData(0,"zpCmFDjfQNQZ58m19+oVVLNPUos="),"keyId" : Long("7285155258693582849")}},"operationTime" : Timestamp(1704349636, 1)
}
字段意义
下面的表格中,列出来hello方法返回的每个字段的意义。
字段 | 意义 |
isWritablePrimary | 布尔值,表示当前节点是否可写,复制集的主节点,分片节点,或单节点为true |
maxBsonObjectSize | 数据库允许返回BSON文档大小,默认 |
maxMessageSizeBytes | 数据库允许返回消息的最大字节数量,默认48000000字节 |
maxWirteBatchSize | 每次批处理最大写入文档,默认10万条 |
localTime | 当前服务器的UTC时间 |
logicalSessionTimeoutMinutes | 数据库session过期时间 |
connectionId | 当前节点与hello执行客户端之间数据库连接id |
minWireVersion | 定义数据库与客户端连接支持最小版本号 |
maxWireVersion | 定义数据库与客户端连接支持最大版本号 |
readOnly | 布尔值,表示当前节点是否只读 |
compression | 列出用来压缩数据的方法数组,如zlib, snabby等 |
saslSupportedMechs | 返回数据库用来创建密码的方法数组 |
msg | 从分片节点中获取的isdbgrid值 |
hosts | 一个<hostname>:<port>格式的字符串,列出当前复制集中的节点。数据库驱动用passives和hosts节点来决定使用哪些节点读取数据 |
setName | 当前复制集名称 |
setVersion | 当前复制集配置版本号 |
secondary | 布尔值,表示当前节点不是复制集的主节点 |
passives | 一个<hostname>:<port>格式的字符串,列出当前复制集中不能成为主节点的节点。仅在priority为0的节点hello结果中返回。数据库驱动用passives和hosts节点来决定使用哪些节点读取数据 |
arbiters | 一个<hostname>:<port>格式的字符串,列出当前仲裁节点 |
primary | 一个<hostname>:<port>格式的字符串,列出当前主节点 |
arbiterOnly | 布尔值,true表示当前节点是一个仲裁者。仅在仲裁节点hello结果中返回该字段 |
passive | 布尔值,true表示当前节点的不可以成为主节点。仅在设置了priority值为0的节点中返回passive字段 |
hidden | 布尔值,表示当前节点是否隐藏 |
tags | 用户定义的复制集节点标签。 |
me | 返回hello结果的节点 |
electionId | 每一次主节点选举时用的唯一id。仅在主节点的hello结果中 |
lastWrite | 数据库最近一次写入操作时间 |