У меня есть база данных DocumentDb, где один из документов-типов имеет следующую структуру:Pure функции Javascript (es2015), чтобы извлечь ребенка из структуры дерева JSon
{
"structure": {
"id": "7d2d5d3f-0c82-4910-aa0b-54d8067588a3",
"unittype": 1,
"name": "MyCompany",
"language": "nb-NO",
"managers": [],
"logoURL": null,
"orginfo": {
"Orgnumber": null,
"Country": null,
"Sector": null,
"Code": null
},
"tags": [],
"respondents": [],
"childUnits": [
{
"id": "3fb44416-8fa8-4b60-8c0c-03b333d176f7",
"unittype": 3,
"name": "Marketing",
"language": "nb-NO",
"managers": [],
"logoURL": null,
"orginfo": {
"Orgnumber": null,
"Country": null,
"Sector": null,
"Code": null
},
"tags": [],
"respondents": [],
"childUnits": [
{
"id": "49932d6f-518e-4511-9bc9-f6f747a81968",
"unittype": 3,
"name": "Internet",
"language": "nb-NO",
"managers": [],
"logoURL": null,
"orginfo": {
"Orgnumber": null,
"Country": null,
"Sector": null,
"Code": null
},
"tags": [],
"respondents": [],
"childUnits": [],
"Parent": "3fb44416-8fa8-4b60-8c0c-03b333d176f7"
},
{
"id": "aa76010d-ae59-49b1-b929-9572eb536cc6",
"unittype": 3,
"name": "DM",
"language": "nb-NO",
"managers": [],
"logoURL": null,
"orginfo": {
"Orgnumber": null,
"Country": null,
"Sector": null,
"Code": null
},
"tags": [],
"respondents": [],
"childUnits": [],
"Parent": "3fb44416-8fa8-4b60-8c0c-03b333d176f7"
}
],
"Parent": "7d2d5d3f-0c82-4910-aa0b-54d8067588a3"
},
{
"id": "be1d142a-e09d-4828-aceb-07d65321da5d",
"unittype": 3,
"name": "Support",
"language": "nb-NO",
"managers": [],
"logoURL": null,
"orginfo": {
"Orgnumber": null,
"Country": null,
"Sector": null,
"Code": null
},
"tags": [],
"respondents": [],
"childUnits": [],
"Parent": "7d2d5d3f-0c82-4910-aa0b-54d8067588a3"
}
],
"Parent": null
},
"id": "07b4c7c5-7324-4eef-9e4e-9deb70615ec4",
"type": "organization",
"owner": "auth0|571f2eb34247998a66726b02",
"public": false,
"_rid": "GPFbALqREAMNAAAAAAAAAA==",
"_self": "dbs/GPFbAA==/colls/GPFbALqREAM=/docs/GPFbALqREAMNAAAAAAAAAA==/",
"_etag": "\"00004707-0000-0000-0000-5881cef40000\"",
"_attachments": "attachments/",
"_ts": 1484902132
}
Это является восстановление старой системы, где все хранилось в реляционной базе данных, и каждый Unit
(объекты в свойстве childUnits
) первоначально был линией в таблице. Тестирование с одним из наших крупнейших клиентов мы получим структуру с более чем 500 единицами. И более 3000 респондентов. (Я еще не добавил ни одного из этих демо, но объект Respondent
содержит адрес электронной почты (обязательно) и, возможно, номер ячейки.)
Результат был не очень хороший. Запуск локально на моем (довольно мускулистом) devpc извлечении структуры занимает около 2-3 секунд. И DocumentDb не поддерживает извлечение деталей документа. Таким образом, каждый раз, когда пользователь нажимает на единицу в древовидной структуре, вся структура возмущается по проводу (эта часть, которую я, вероятно, мог бы кэшировать, но если пользователь что-то изменит, мне нужно будет хранить всю вещь, а затем читать ее) ,
Что такое DocumentDb , однако, это хранимые процедуры Javascript, в которых используется Chakra, что соответствует ES2015, насколько я могу судить.
Итак, я думал о создании хранимой процедуры, в которой я даю id
документу (органам) и id
для извлечения Единицы. И он ищет через json-документ и извлекает только тот блок, который я хочу, и отправляет его обратно.
Возможно ли это, если нет внешних библиотек, только функции ES2015?
Кто-нибудь подтвердил? Это работает в хранимой процедуре в DocumentDB? –