DocumentDb - получить Json-представление документа

Существует ли простое/какое-либо решение для помещения JSON-представления данных документа (без собственных свойств DocDb, таких как _rid и т. д.) в ответ (в хранимых процедурах) или решение где-то в пространстве имен Microsoft.Azure.Documents?


person Chris Hermut    schedule 30.05.2015    source источник
comment
Я отредактировал ваш заголовок. См. Должны ли вопросы включать «теги» в свои заголовки?, если нет единого мнения, не следует.   -  person John Saunders    schedule 31.05.2015


Ответы (2)


Вы можете использовать оператор удаления JavaScript, чтобы удалить собственные свойства DocumentDB. Взгляните на этот поток: Как удалить свойство из объект JavaScript?

Что-то вроде этого должно работать:

delete doc._rid;
delete doc._ts;
delete doc._etag;
getContext().getResponse().setBody(doc);
person Aravind Krishna R.    schedule 30.05.2015
comment
Спасибо за ответ. Есть довольно много решений, когда дело доходит до удаления свойств из объекта (sproc, внутри контроллера (мудрый MVC) и т. д.). Я просто надеялся на собственное решение. - person Chris Hermut; 31.05.2015

У меня был тот же вопрос. Я нашел этот способ (в С#):

dynamic d = Newtonsoft.Json.Linq.JObject.Parse(doc.ToString());
string versionData = d["Employees"]["@version"];
string employeeNameData = d["Employees"]["@name"];

Где «Сотрудники» — это имя документа (т. е. имя таблицы в терминах Sql), а версия — это атрибут этого документа.

Таким образом, вы можете сделать общий запрос по любым данным, хранящимся внутри документа. Надеюсь это поможет! :)

person Deb    schedule 17.08.2015
comment
Конечно, вы также можете сделать следующее напрямую: dynamic jsonObj = doc; (где doc — это Microsoft.Azure.Documents.Document), но тогда вы не сможете сделать следующее: string versionData = d[Employees][@version]; и вы должны сделать: string versionData = d.Employees.[@version]; что делает его немного нестандартным - person Deb; 17.08.2015