mongodb为什么我们需要getSisterDB

时间:2013-10-27 02:37:38

标签: mongodb

在使用mognodb控制台帮助时,我找到了db.getSisterDB()方法。

我很好奇这种方法的目的是什么。浏览mongodb文档和快速谷歌搜索并没有产生令人满意的结果。

通过键入db.getSisterDb.help会生成错误并键入db.getSisterDB会给出以下此方法的定义:

function ( name ){
    return this.getMongo().getDB( name );
}

这表明这只是getDB的包装。我的建议是它用于访问副本集中的数据库,但我想听一个能给我更全面解释的人。

2 个答案:

答案 0 :(得分:14)

在shell中,db是对当前数据库的引用。如果要查询同一mongod实例中的其他数据库,获取正确引用的方法将是使用此方法(具有别名,更具性别中性的getSiblingDB)。

如果您想使用较长的语法,您可以:db.getMongo().getDB(name)为您提供与db.getSiblingDB(name)db.getSisterDB(name)相同的功能,但前者的输入时间更长。

以上所有内容在独立mongod以及副本集(和分片群集)中的工作方式相同。

答案 1 :(得分:1)

我要添加到接受的答案中,因为我没有找到我想要的第一个结果。

getSiblingDB存在脚本编写,其中use帮助程序不可用

getSiblingDB是相同getSisterDB之间的新版本,因此使用兄弟作为getSisterDB已不在文档中

在shell中使用时,getSiblingDB用于在不更改db变量的情况下获取数据库