11

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

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

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

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

这表明这只是getDB. 我的建议是用于访问副本集中的数据库,但我想听听一个可以给我更彻底解释的人。

4

2 回答 2

21

在shell 中,db是对当前数据库的引用。如果你想在同一个mongod实例中查询不同的数据库,获得正确引用的方法是使用这个方法(它有一个别名,更中性的 getSiblingDB)。

如果您想使用更长的语法,您可以:得到与ordb.getMongo().getDB(name)相同的内容,但前者的输入时间更长。db.getSiblingDB(name)db.getSisterDB(name)

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

于 2013-10-27T02:52:34.257 回答
2

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

getSiblingDB存在用于脚本,其中use助手不可用

getSiblingDB是相同之间的较新getSisterDB,所以使用兄弟作为getSisterDB不再在文档中

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

于 2018-02-23T23:27:44.003 回答