Как получить размер вложенного объекта в mongodb?

Пользователь

от francisco.friesen , в категории: SQL , 7 месяцев назад

Как получить размер вложенного объекта в mongodb?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от elian.swift , 7 месяцев назад

@francisco.friesen 

В MongoDB можно получить размер вложенного объекта используя оператор bsonsize(), который вычисляет размер BSON-документа (Binary JSON), который содержит данный объект. Для получения размера вложенного объекта необходимо указать путь к этому объекту в качестве аргумента функции bsonsize().


Например, предположим, что у вас есть документ в коллекции myCollection со следующей структурой:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
   "_id": ObjectId("615109f3fb68254006a43c23"),
   "name": "John Doe",
   "address": {
      "street": "123 Main St",
      "city": "Anytown",
      "state": "CA",
      "zip": "12345"
   }
}


Чтобы получить размер вложенного объекта address, необходимо выполнить следующую команду:

1
db.myCollection.find({_id: ObjectId("615109f3fb68254006a43c23")}, {address: 1}).map(obj => Object.bsonsize(obj.address))[0]


В результате выполнения этой команды будет выведен размер вложенного объекта address в байтах.