2011-01-18 16 views
3

私はPHPのMongoのコマンドを使用していました:コレクションに上限があるかどうかはどのように判断できますか?

$db->command(array("create" => $name, "size" => $size, "capped" => true, "max" => $max)); 

そして、私のコレクションはそのはず頂いた限界を超えて道の増加となりました。私は修正を置いた:

$db->createCollection($name, true, $size, $max); 

現在のところ、私は '修正'が働いたかどうかは分かりません。

コレクションには、シェルまたはPHPのいずれかが含まれているかどうかをどのように判断できますか?私はsystem.namespacesでこの情報を見つけることができませんでした。シェルから

答えて

4

シェルでは、db.collection.stats()を使用します。コレクションに上限が設定されている場合:

> db.my_collection.stats()["capped"] 
1 

コレクションに上限が設定されていない場合、「上限」キーは表示されません。

> db.my_coll.stats() 
{ 
    "ns" : "my_db.my_coll", 
    "count" : 221, 
    "size" : 318556, 
    "avgObjSize" : 1441.4298642533936, 
    "storageSize" : 1000192, 
    "numExtents" : 1, 
    "nindexes" : 0, 
    "lastExtentSize" : 1000192, 
    "paddingFactor" : 1, 
    "flags" : 0, 
    "totalIndexSize" : 0, 
    "indexSizes" : { 

    }, 
    "capped" : 1, 
    "max" : 2147483647, 
    "ok" : 1 
} 

これはMongoDBの1.7.4である:以下

にキャップを収集するための統計()の例の結果です。

+3

JavaScriptのコレクションオブジェクトにisCapped()メソッドが用意されました: '> db.my_coll.isCapped()' –

2

db.system.namespaces.find() 

あなたが与えられたデシベルのためのすべてのコレクションとインデックスのリストが表示されます。コレクションに上限がある場合は、それが示されます。

6

Turns out isCapped()関数もあります。 PHPの場合

db.foo.isCapped() 
0

$collection = $db->selectCollection($name); 
$result = $collection->validate(); 
$isCapped = isset($result['capped']); 
関連する問題