Самое простое решение - изменить структуру в соответствии с типом запроса, который вы хотите, и / или добавить дополнительную структуру (и).Это очень распространенный метод в базах данных NoSQL.
lists
list_id_0
name: "Grocery List"
list_id_1
name: "Pancake Recipe"
list_id_2
name: "To Do"
object_lists
autoId_0
amount: 1
objectName: "Milk"
list_id: "list_id_0"
autoId_1
amount: 1
objectName: "Banana"
list_id: "list_id_0"
autoId_2
amount: 1
objectName: "Apple"
list_id: "list_id_0"
autoId_3
amount: 1
objectName: "Milk"
list_id: "list_id_1"
autoId_4
amount: 1
objectName: "Flour"
list_id: "list_id_1"
, и с этой структурой можно легко запрашивать все объекты для objectName of Milk, и это также скажет вам, к какому list_id он принадлежит.
Вы могли бы даже пойти так далеко, чтобы присвоить своим объектам идентификатор и связать их со списками таким образом
objects
object_id_0
name: "Milk"
object_id_1
name: "Flour"
object_id_2
name: "Banana"
lists_of_objects
list_id_0
object_id_0: true
object_id_1: true
, а затем выполнить запрос для каждого списка, где object_id_0 имеет истинное значение
Ох, но подождите .. это еще не все!Проверьте это
objects_and_their_lists
object_id_0
list_id_0: true
list_id_1: true
и с этой структурой, если вы знаете object_id (молоко в данном случае), вы можете просто извлечь object_id_0 из этой структуры и точно знать, в каком списке он появляется. Это позволит избежатьзапрос полностью и очень легкий.