[컴][db] mongodb commands

몽고db 몽고 / mongo command

mongodb commands

mongodb 사용량 관련 commands

  • db.mycollection2.storageSize();
  • db.mycollection2.totalIndexSize();
  • db.mycollection2.totalSize();

아래처럼 collection 의 storage size 와 index size 를 확인할 수 있다.

db.mycollection2.totalIndexSize();
db.mycollection2.storageSize();
db.mycollection2.totalSize();

// collection 을 string 으로 표현하는 법
db["collection-have-dash"].storageSize();

db.mycollection2.stats()db.runCommand( { collStats : "mycollection2", scale: 1 } ) 의 wrapper 이다.

  • db.runCommand( { collStats : "mycollection2", scale: 1 } )
  • db.mycollection2.stats();
  • db.mycollection2.stats({scale: 1024 * 1024}); : size 의 표시 단위를 변경할 수 있다. 기본은 byte 이다.

stats 를 하면 아래같은 결과를 볼 수 있다. size 와 storageSize 가 다른 이유 는 압축(compression) 때문이다.

/* 1 */
{
    "ns" : "mydb.mycollection2",
    "size" : 74590772,
    "count" : 147302,
    "avgObjSize" : 506,
    "storageSize" : 22032384, // storageSize() 값과 같다.
    "capped" : false,
    "wiredTiger" : {
        "metadata" : {
            "formatVersion" : 1
        },
        "creationString" : "...",
        "type" : "file",
        "uri" : "statistics:table:collection-32933-5998169951348003341",
        "LSM" : {
            ...
        },
        "block-manager" : {
            ...
        },
        "btree" : {
            ...
        },
        "cache" : {
            ...
        },
        "cache_walk" : {
            ...
        },
        "compression" : {
            ...
        },
        "cursor" : {
            ...
        },
        "reconciliation" : {
            ...
        },
        "session" : {
            ...
        },
        "transaction" : {
            "update conflicts" : 0
        }
    },
    "nindexes" : 1,
    "totalIndexSize" : 1355776,
    "indexSizes" : {
        "_id_" : 1355776
    },
    "ok" : 1.0
}
  • $bsonSize : collection 에 있는 모든 document 들의 총 size 를 구할 수 있다. mongodb version 4.4 이후부터 가능
db.mycollection2.aggregate([
  {
    $group: {
      "_id": null,
      "rootSize": { $sum: { $bsonSize: "$$ROOT" } }
    }
  }
])
  • `db.mycollection2.count() : : collection 내의 document 수를 알려준다.
  • db.mycollection2.countDocuments() : collection 내의 document 수를 알려준다. mongodb v4.0 이후부터

여러개의 결과를 묶어서 보고 싶은 경우

아래처럼 for 문으로 한번에 여러개를 수행하면, 결과를 한꺼번에 보여준다. 마지막 statement 로 total 을 찍으면 total 의 값을 보여준다. 그래서 for 문안에 total 을 넣어놨다.

var total = {
    size: 0,
    count: 0,
};
var a = ["mycollection1", "mycollection2"]
for (var i = 0; i < a.length; i++) {
  var r = db.runCommand( { collStats : a[i], scale: 1 } )
  total.size += r.size
  total.count += r.count
  total
}

See Also

  1. 48 MongoDB Commands and Queries to Know as Developer and DBA

References

  1. 5 Ways to Check the Size of a Collection in MongoDB | Database.Guide

댓글 없음:

댓글 쓰기