Come puoi sapere se una collezione è limitata?

Stavo usando un command PHP mongo:

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

E le mie collezioni sono cresciute oltre i loro presunti limiti massimi. Ho messo una correzione:

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

Attualmente i conteggi sono così bassi che non posso dire se la 'correzione' ha funzionato.

Come puoi sapere se una collezione è limitata, sia dalla shell che dal PHP? Non ero in grado di trovare queste informazioni negli spazi system.names.

Nella shell, usa db.collection.stats (). Se una raccolta è limitata:

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

Se una raccolta non è limitata, la chiave "ridotta" non sarà presente.

Di seguito sono riportti i risultati di esempio di stats () per una raccolta limitata:

 > 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 } 

Questo è con MongoDB 1.7.4.

Risulta anche la function isCapped ().

 db.foo.isCapped() 

Dalla shell:

  db.system.namespaces.find() 

Vedrai un elenco di tutte le raccolte e gli indici per il dato db. Se un incasso è limitato, verrà indicato.

Per PHP:

 $collection = $db->selectCollection($name); $result = $collection->validate(); $isCapped = isset($result['capped']);