|
Mongo > структура документа
|
|||
---|---|---|---|
#18+
Есть монго коллекция размером 1гб и примерно 6000 документов (товаров). Довольно простая задача: для каждой страны выводить список самых покупаемых товаров Как реализовано: добавлена структура вида: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8.
при запросе к монге используем сортировку:mongofind(...).sort({"stats.rates.<country_code>":-1}) Проблема: на 3ей странице mongoskip(200).limit(100) уже получаем ошибку: mongotoo much data for sort() with no index. add an index or specify a smaller limit Добавлять индекс с такой структурой никак, так как для каждой страны тогда надо будет создавать индекс т.е. больше 200 штук. Как тогда быть? Может можно поменять структуру чтобы можно было 1им индексом обойтись? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 11:17 |
|
Mongo > структура документа
|
|||
---|---|---|---|
#18+
Ренат, А зачем в учётной системе эта монга? Обычная БД всё отсортирует и покажет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 12:19 |
|
Mongo > структура документа
|
|||
---|---|---|---|
#18+
Система построена на сервисах. Основной сайт не имеет доступ к mysql. Только к сервису который умеет делать запрос к монге. Т.е. монга у нас как промежуточный кеш между основным сайтом и mysql базой данных. поэтому мы можем юзать только монгу в данном случае ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 12:24 |
|
Mongo > структура документа
|
|||
---|---|---|---|
#18+
Ренат, если в лоб, то: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 14:00 |
|
Mongo > структура документа
|
|||
---|---|---|---|
#18+
skyANA, а в таком случае возможно без aggregate $unwind обойтись? обычным find? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 16:13 |
|
Mongo > структура документа
|
|||
---|---|---|---|
#18+
Ренат, возможно ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2018, 21:02 |
|
Mongo > структура документа
|
|||
---|---|---|---|
#18+
что то не получаеться: исходные данные Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
Пробовал так: Код: javascript 1. 2. 3.
Сортировка не работает. Пробовал так: Код: javascript 1. 2. 3.
Возращает странный порядок Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2018, 14:44 |
|
Mongo > структура документа
|
|||
---|---|---|---|
#18+
mongo docsWhen the find() method includes a sort(), the find() method applies the sort() to order the matching documents before it applies the positional $ projection operator. If an array field contains multiple documents with the same field name and the find() method includes a sort() on that repeating field, the returned documents may not reflect the sort order because the sort was applied to the elements of the array before the $ projection operator. Нашел монго документации. Пока не понятно как сделать это обычным find ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2018, 14:58 |
|
|
start [/forum/topic.php?fid=48&msg=39720130&tid=1856606]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 270ms |
0 / 0 |