MongoDB中cmd`show dbs`的BSON doc(查询)是什么?

时间:2013-05-02 19:51:11

标签: mongodb

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

但这是一种在mongo shell中运行的命令。

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

1 个答案:

答案 0 :(得分:2)

这不是查询,但您可以对admin数据库运行listDatabases命令以获取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})