diff options
Diffstat (limited to 'src/mongo/db/pipeline/document.cpp')
-rw-r--r-- | src/mongo/db/pipeline/document.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mongo/db/pipeline/document.cpp b/src/mongo/db/pipeline/document.cpp index a4c17d92501..1b8d8ecb5cb 100644 --- a/src/mongo/db/pipeline/document.cpp +++ b/src/mongo/db/pipeline/document.cpp @@ -235,14 +235,16 @@ intrusive_ptr<DocumentStorage> DocumentStorage::clone() const { } size_t DocumentStorage::getMetadataApproximateSize() const { + // We count only the "deep" portion of the metadata values. The rest is counted in the size of + // the DocumentStorage class. size_t size = 0; - size += sizeof(_textScore); - size += sizeof(_randVal); size += _sortKey.objsize(); - size += sizeof(_geoNearDistance); size += _geoNearPoint.getApproximateSize(); - size += sizeof(_searchScore); + // Size of Value is double counted - once in sizeof(DocumentStorage) and once in + // getApproximateSize() + size -= sizeof(_geoNearPoint); size += _searchHighlights.getApproximateSize(); + size -= sizeof(_searchHighlights); return size; } |