Как отфильтровать данные?

Gerga
На сайте с 02.08.2015
Offline
94
#51
timo-71:
Вроде неоднократно говорилось, что это вывод из бд. Т.е готовый лист словарей в терминах питона или массив массивов/объектов в терминах php/js
Ну типа

Ага, понятно. Т.е. сначала будет сделана работа на получение коллекции, в которой есть не нужные объекты, а потом нужно удалить эти объекты? Лучше как можно раньше отсечь ненужные данные...

T7
На сайте с 19.09.2018
Offline
63
#52
Gerga:
Лучше как можно раньше отсечь ненужные данные...

Sly32 задал абстрактный вопрос - задачу для первоклассника. Не суть как эта задача появляется. Это может быть рекурсивно. Ну вот, например, на таком объекте:

db.runCommand({'collStats':'ttu'})
{
"ns" : "teсh.ttu",
"size" : 843057200,
"count" : 3367400,
"avgObjSize" : 250,
"storageSize" : 90828800,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
}
.................
"totalIndexSize" : 641056768,
"indexSizes" : {
"_id_" : 355459072,
"name_text_text_text" : 285597696
},
"scaleFactor" : 1,
"ok" : 1

Например не удалять, а оставить "bytes currently in the cache" > xxxx

Оно там есть где то в .......... удаленном


"wiredTiger" : {
"cache" : {
"bytes currently in the cache" : 108254,

----------


Вы ввели слишком длинный текст (37822 символов). Пожалуйста, сократите его до 12000 символов.

Сократил как мог

S
На сайте с 30.09.2016
Offline
469
#53
timo-71:
Sly32 задал абстрактный вопрос - задачу для первоклассника.

Он утверждает, что это очень важная задача. 😎

Sly32:
Ответом из моей задачки будет пользоваться полтора миллиона подписчиков
timo-71:
Не суть как эта задача появляется. Это может быть рекурсивно.

Да нет же. Он получает данные из базы данных.

Sly32:
Данные приходят на бэкенде из базы данных
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
T7
На сайте с 19.09.2018
Offline
63
#54
Sitealert:
Он утверждает, что это очень важная задача

Да ладно, шутит наверное.

Sitealert:
Да нет же. Он получает данные из базы данных

Вообще не суть откуда. Рекурсия, это к тому что могло бы быть и так в задаче:

{
'id': 0,
'media_category': 'clip',
'child' : {
'id': 22,
'media_category': 'clip',
'child' : {
'id': 27,
'media_category': 'clip',
'child' : {
'id': 77,
'media_category': 'xxx',
}
}
}
}
tommy-gung
На сайте с 22.11.2006
Offline
287
#55
Sly32:
справься хотя бы с этой
Пока от пхпэшников ни одного решения...

ты серьезно что ли?

https://www.google.com/search?client=firefox-b-d&q=php+%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F+json+%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85

вот решение от непрограммистов))

ну и чет сомневаюсь, что у этой субд нет встроенных способов фильтрации данных

Здесь не могла быть ваша реклама
Sly32
На сайте с 29.03.2012
Offline
303
#56
Gerga:
Лучше как можно раньше отсечь ненужные данные...

Бесспорно, лучше. Но есть бизнес-логика и в ее рамках не всегда получается

Ну вот пример пример в данном случае, попробую обьяснить, почему это невыгодно делать на уровне БД. Запрос в постгресс делается 1 раз, потом данные храняться в редисе и в разных кейсах мне нужно получать разные итоговые данные. Задача - лишь один из них. Мне не нужно каждый раз стучаться в БД, я работаю с уже полученной коллекцией.

Поэтому и нужно решать средствами языка а не рассуждать - как еще это можно сделать.

tommy-gung:
вот решение от непрограммистов))

Мне неинтересно что есть в гугле - мне было интересно предложить народу поиграться с чем-то больше чем настраивать плагины. Тот кто умеет мыслить - включился и предложил решения, болтуны начали рассуждать...

по итогу - код на питоне - самый короткий и читабельный)

Тем кто отвечал по существу - спасибо за интересную дискуссию)

---------- Добавлено 14.06.2020 в 13:24 ----------

timo-71:
Да ладно, шутит наверное.

Важная, но я не говорил что сложная или для сеньоров - так, развлечься. Я например, потратил гораздо больше времени на написание тестов чем на саму задачу)

tommy-gung
На сайте с 22.11.2006
Offline
287
#57
Sly32:
по итогу - код на питоне - самый короткий и читабельный)

но короткий же != самый быстрый?

ну и читабельность, наверное, субъективное понятие в этом данном случае

Sly32
На сайте с 29.03.2012
Offline
303
#58
tommy-gung:
но короткий же != самый быстрый?

Проверь, если есть сомнения)

danforth
На сайте с 18.12.2015
Offline
153
#59
Sly32:
по итогу - код на питоне - самый короткий и читабельный)

Коротый - да, а читабельный - точно нет.

Sly32:
Проверь, если есть сомнения)

И самый медленный.

Ну и опять таки, ты не скинул весь файл с кодом.

Junior Web Developer
Sly32
На сайте с 29.03.2012
Offline
303
#60
danforth:
Ну и опять таки, ты не скинул весь файл с кодом


data = [ {'id': 0, 'media_category': 'clip'},
{'id': 1, 'media_category': 'promo'},
{'id': 2, 'media_category': 'promo'},
{'id': 3, 'meda_category': 'promo'},
{'id': 4, 'media_category': 'clip'}]


def filter_data(data):
return filter(lambda _data: _data.get('media_category') not in ['promo'], data)


result = filter_data(data)
for item in result:
print(item)

собственно, сам код - строки 9-10, остальное - чтобы проверить в любой питоновской консоли. В рамках задачи мне потребовалось вставить 2 строки в существующий код - проверка на ключ, что нужно фильтровать и сама фильтрация.

Про скорость - понятно что го будет быстрее, но все это компилируется в сpython в реальности, там уже несильно важно.

Дв а принципе, я ничего не имею против кода на пхп, это не тема для срача)

Спасибо всем за участие, будете у нас в Минске - с удовольствием пересекусь за пивом. Думаю тема исчерпана

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий