真实藏品之间的关系是什么?名称和文件系统中的名称

时间:2015-05-13 12:12:15

标签: mongodb wiredtiger

我使用带有WiredTiger存储引擎的MongoDB 3.0。 当我在dbPath中检查我的Mongo文件时,我看到了文件的名称,格式如下: 收集,0--4989330656807016483.wt 收集,2--4989330656807016483.wt 收集,4--4989330656807016483.wt 。 。 。 我怎么知道这些文件名和真实集合之间的关系?名称除了数据大小的方式??

4 个答案:

答案 0 :(得分:3)

我找到了命令“db.collection.stats()”将显示的方法,即wiredTiger.metadata.uri,它定义了集合的逻辑名称和文件名之间的关系命令

答案 1 :(得分:1)

使用此

db.getCollection('collection_name').stats()

答案 2 :(得分:0)

找到给定文件名的集合名称的简单脚本:

function findInDb(dbName, collectionIdToFind) {
    var dbToSearch = db.getSiblingDB(dbName);
    var collectionNames = dbToSearch.getCollectionNames();

    for(var i = 0; i < collectionNames.length; i++){
        var name = collectionNames[i];
        var stats = dbToSearch.getCollection(name).stats();
        var uri = stats.wiredTiger.uri;

        if (uri.endsWith(collectionIdToFind))
            return name;
    }
    
    return null;
}

function findInAllDbs(collectionIdToFind) {
    var adminDb = db.getSiblingDB("admin");
    var dbList = adminDb.runCommand({ "listDatabases": 1 }).databases;

    for (var i in dbList) {
        var found = findInDb(dbList[i].name, collectionIdToFind);
        if (found != null) {
            return dbList[i].name + "." + found;
        }
    }
    
    return "(not found)";
}

print(findInAllDbs("collection-20-571885508699163146")); // filename in crash report, etc.

答案 3 :(得分:-2)

您可以通过查询GridFS集合查询有关大数据文件(&gt; 16 M)的信息,具体来说:

db.fs.files - 存储文件的元数据。 db.fs.chunks - 存储二进制块

此处提供了更多信息http://docs.mongodb.org/manual/core/gridfs/