2

根据Getting Started with MongoDB,我们可以show dbs用来获取现有数据库的列表。

但这是一种在mongo shell.

我的问题是如何为mongodb query (bson)数据库列表编写一个,以及这个查询应该发送到哪里?

4

1 回答 1

2

这不是查询,但您可以listDatabases对 admin 数据库运行命令以获取 BSON 中的数据库列表:

> use admin
switched to db admin
> db.runCommand({listDatabases : 1})
{
        "databases" : [
                {
                        "name" : "local",
                        "sizeOnDisk" : 83886080,
                        "empty" : false
                },
        ],
        "totalSize" : 83886080,
        "ok" : 1
}

MongoDB 的大多数编程语言引擎也可以运行除了查询之外的命令,只要给出正确的语法。例如,在 Java 中:

DB db = mongo.getDB("admin");
DBObject cmd = new BasicDBObject("listDatabases", 1);
CommandResult result = db.command(cmd);

有趣的是,如果你真的坚持它是一个查询,你可以通过提交查询来查询数据库$cmd上的虚拟集合来运行命令:admin

> use admin
switched to db admin
> db.$cmd.findOne({"listDatabases":1})
于 2013-05-02T20:09:42.267 回答