Mongodb使用db.getSiblingDB()获取兄弟数据库

Mongodb一个运行实例中,允许创建多个数据库。使用命令

show dbs

admin    0.000GB
config   0.000GB
local    0.000GB

或命令

db.adminCommand({listDatabases:1});
{
	"databases" : [
		{
			"name" : "admin",
			"sizeOnDisk" : 40960,
			"empty" : false
		},
		{
			"name" : "config",
			"sizeOnDisk" : 61440,
			"empty" : false
		},
		{
			"name" : "local",
			"sizeOnDisk" : 73728,
			"empty" : false
		}
	],
	"totalSize" : 37228544,
	"totalSizeMb" : 35,
	"ok" : 1
}

即可列出所有db。

建立数据库连接以后,使用命令

use <database_name>

即可实现不同db之间的切换。但使用use切换db是,会改变当前shell环境中db变量的值。如果想同时操作两个数据库,使用use命令则无法满足需求。mongodb提供的方法

db.getSiblingDB(<database_name>)

来解决这样的问题,方便数据库管理的使用人员在同一个shell环境中操作mongodb instance中多个数据库。

作用

在shell环境中,无需修改当前数据库对象,返回当前mongodb运行实例中的其他数据库。在编写脚本中,使用该命令替代use命令。

定义

db.getSiblingDB(<database_name>)

其中 database_name是一个字符串(String)类型的参数,指定要切换的数据库名称。

使用场景

使用该方法,可以方便的操作数据库对象。

将数据库对象指定给变量

如当前mongodb数据库运行实例中包含users, records两个数据库。使用下面的命令,将数据库指定给变量。

let userDb = db.getSiblingDB('users');

则数据库操作和管理人员可以使用变量userDb来对数据库users进行操作。如

userDb.active.countDocuments(); //查询数据库users中集合active的文档数量

多数据库场景的使用

使用命令db.getSiblingDB()可以方便的在shell环境中完成多db的操作。下面的命令,实现了两个不同数据库集合的查找。

let users = db.getSiblingDB('users') //将users数据库赋值给变量users
let records = db.getSiblingDB('records') //将records数据库赋值给变量records

users.active.countDocuments() //查询user数据库中集合active的文档数量
users.active.findOne() //查询user数据库中集合active的文档中的一条记录

records.requests.countDoucments()//查询records数据库中集合requests的文档数量
records.requests.findOne()//查询records数据库中集合requests的文档中的一条记录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

威赞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值