Уже существует база данных CouchDB, которая была создана на основе существующих записей из базы данных MySQL.
У меня есть такой набор документов:
[
{
"_id": "lf_event_users_1247537_11434",
"_rev": "1-19e90d3f19e9da7cc5adab44ebbe3894",
"TS_create": "2018-12-17T10:29:20",
"emm_id": 204662,
"eu_user_id": 201848611,
"type": "lf_event_users",
"uid": 1247537,
"vendor_id": 11434
},
{
"_id": "lf_event_users_1247538_11434",
"_rev": "1-0d0d1e9f1fb5aad9bafd4c53a6cada17",
"TS_create": "2018-12-17T10:29:20",
"emm_id": 204661,
"eu_user_id": 201848611,
"type": "lf_event_users",
"uid": 1247538,
"vendor_id": 11434
},
{
"_id": "lf_event_users_1247539_11434",
"_rev": "1-09bc2bfc709ee9c6e6cac9cb34964ac4",
"TS_create": "2018-12-17T10:29:20",
"emm_id": 204660,
"eu_user_id": 201848611,
"type": "lf_event_users",
"uid": 1247539,
"vendor_id": 11434
}
]
Как вы можете видетьвсе они предназначены для одного и того же "eu_user_id" = 201848611, и у каждого из них свой "emm_id".
Теперь у меня есть другой набор документов, подобный этому, в той же базе данных CouchDB:
[
{
"_id": "lf_event_management_master_204660_11434",
"_rev": "2-320111a3814a3efd6838baa0fb5412bb",
"emm_disabled": "n",
"emm_title": "Scanned for local delivery",
"settings": {
"event_view": "ScannedForLocalDeliveryEvent",
"sort_weight": 0
},
"type": "lf_event_management_master",
"uid": 204660,
"vendor_id": 11434
},
{
"_id": "lf_event_management_master_204661_11434",
"_rev": "2-e6d6ebbd4dc4ca473a376d3d16a58e93",
"emm_disabled": "n",
"emm_title": "Local Delivery Cancelled",
"settings": {
"event_view": "CancelDeliveryEvent",
"sort_weight": 4
},
"type": "lf_event_management_master",
"uid": 204661,
"vendor_id": 11434
},
{
"_id": "lf_event_management_master_204662_11434",
"_rev": "2-53cb3d3eba80704e87ea5ff8d5c269df",
"emm_disabled": "n",
"emm_title": "Local Delivery Exception",
"settings": {
"event_view": "DeliveryExceptionEvent",
"sort_weight": 3
},
"type": "lf_event_management_master",
"uid": 204662,
"vendor_id": 11434
}
]
Как видите, у каждого документа в этом последнем наборе есть «uid», совпадающий с «emm_id» в предыдущем наборе документов.В основном это означает:
- «Пользователь» имеет много разрешенных «событий».
Вы также можете видеть, что документы типа «lf_event_management_master» не имеют «eu_user_id»значение или любой другой ключ, соответствующий этому.
Мой вопрос:
Как я могу получить все документы типа "lf_event_management_master", разрешенные для пользователя "201848611" в одном запросе?
В моем случае у меня есть только идентификатор пользователя (201848611), доступный в точке, где мне нужно получить разрешенные события.В настоящее время происходит следующее:
- Я получаю все записи "lf_event_users" для этого пользователя.
- Зацикливание всех результатов из предыдущего запроса и построение нового запроса, извлекая это время для поискавсе "lf_event_management_master", где "uid" включает любое из значений "emm_id", найденных в предыдущем запросе.
Заранее спасибо.