Я считаю, что есть хотя бы два способа иметь встроенные данные в документе mongodb. В упрощенном случае мы могли бы иметь что-то вроде этого:
{
'name' : 'bill',
'lines': {
'idk73716': {'name': 'Line A'},
'idk51232': {'name': 'Line B'},
'idk23321': {'name': 'Line C'}
}
}
и как массив:
{
'name' : 'bill',
'lines': [
{'id': 'idk73716', 'name': 'Line A'},
{'id': 'idk51232', 'name': 'Line B'},
{'id': 'idk23321', 'name': 'Line C'}
]
}
Как вы можете видеть в этом случае, важно сохранить идентификатор каждой строки.
Мне интересно, есть ли плюсы и минусы между этими двумя схемами. Особенно, когда речь заходит об использовании индексов, я чувствую, что второй может быть проще работать, поскольку можно было бы создать индекс на 'lines.id' или даже 'lines.name' для поиска идентификатора или имени по всем документам. Я не нашел никакого рабочего решения для индексации идентификаторов ('idk73716' и т.д.) В первом примере.
Как правило, предпочтительнее использовать второй подход, если у вас есть пример использования?