|
MongoDB: Условия и редактирование дочерних полей.
|
|||
---|---|---|---|
#18+
Приходится вникать в MongoDb. Ни как не могу найти информацию по операциям над дочерними полями. Есть некая коллекция документов: Код: plaintext 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.
Алгоритмы имеют статистику по категориям (YES, NO, Black, White). Если необходимы документы где категория черных 30, я пишу запрос: Код: plaintext
А как сделать выборку документов, где хоть в какой нибудь DocCount = 30: Код: plaintext
Или как мне во всех алгоритмах, в каждой категории переименовать поле Length в L ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2017, 16:10 |
|
MongoDB: Условия и редактирование дочерних полей.
|
|||
---|---|---|---|
#18+
Wisky, а с какой целью выбрана именно такая схема? Если YES, NO, Black, White - это дискриминатор типа, то под это дело уже есть механизм: http://codingcanvas.com/storing-polymorphic-classes-in-mongodb-using-c/ Если просто название алгоритма, то и добавьте соответсвующее поле: Код: javascript 1. 2. 3. 4. 5.
А для переименования поля используйте rename: https://docs.mongodb.com/manual/reference/operator/update/rename/ ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2017, 11:02 |
|
MongoDB: Условия и редактирование дочерних полей.
|
|||
---|---|---|---|
#18+
skyANAЕсли YES, NO, Black, White - это дискриминатор типа, то под это дело уже есть механизм: http://codingcanvas.com/storing-polymorphic-classes-in-mongodb-using-c/ А для переименования поля используйте rename: https://docs.mongodb.com/manual/reference/operator/update/rename/ За дискриминатор большое спасибо, не знала, скорее обязательно пригодится, но не здесь. Подробнее о схеме: Документы базы - тематизаторы (достаточно большого размер, сколько позволяет монго). "YES", "NO" - это пример категории тематизатора со статистиками, тегами и другим барахлом. Для редактирования документа и переименования надо указывать полный путь, а можно ли одним запросом, а не получая список родителей, многократно корректировать каждую категорию по отдельности (каждый документ * каждую категорию, это многовато раз)? Или надо корректировать текущую схему (досталась по наследству), использовать дерево словарей кажется удобнее, чем создавать список структур. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2017, 13:28 |
|
MongoDB: Условия и редактирование дочерних полей.
|
|||
---|---|---|---|
#18+
Wisky, если Вы переделаете схему на вложенный массив (nested array), то получите бонусы в виде индексов и встроенных операций по работе с массивами. Это будет и удобнее и гораздо производительнее. Или можете использовать оператор $where : Код: javascript 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2017, 18:04 |
|
|
start [/forum/topic.php?fid=48&fpage=5&tid=1856676]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 147ms |
0 / 0 |