Запросить массив документов json (отключить ссылку на элемент) из MongoDB, используя канун python

Используя среду Python eve, есть ли способ получить ответ, показанный в первом типе json, который представляет собой массив объектов, как показано в примере? Я пытался отключить HATEOAS, как написано здесь. Некоторые приложения просмотра используют прямую выборку модели и коллекций на ее основе, например, Backbone обработчик данных NodeJS.

 [
  {
    "_id": "526c0e21977a67d6966dc763",
    "question": "1",
    "uk": "I heard a bloke on the train say that tomorrow's trains will be delayed.",
    "us": "I heard a guy on the train say that tomorrow's trains will be delayed."
  },
  {
    "_id": "526c0e21977a67d6966dc764",
    "question": "2",
    "uk": "Tom went outside for a fag. I think he smokes too much!",
    "us": "Tom went outside for a cigarette. I think he smokes too much!"
  }
]

Вместо того, чтобы возвращать объект JSON с ключом _items, как показано:

{
  "_items":[
            {
              "_id": "526c0e21977a67d6966dc763",
              "question": "1",
              "uk": "I heard a bloke on the train",
              "us": "I heard a guy on the train"
            },
            {
              "_id": "526c0e21977a67d6966dc764",
              "question": "2",
              "uk": "Tom went outside for a fag. I think he smokes too much!",
              "us": "Tom went outside for a cigarette. I think he smokes too much!"
            }
   ]
}

person AHashmi    schedule 02.02.2016    source источник


Ответы (1)


В настоящее время это невозможно, так как полезная нагрузка ответа построена в виде словаря, в котором могут появиться несколько ключей (данные разбиения на страницы, ссылки HATOEAS и фактические документы).

Теоретически мы могли бы добавить новую опцию конфигурации, которая переключалась бы на макет в виде списка (и упрощенный). Однако следует учитывать все последствия, поэтому никаких обещаний, но рассмотрите возможность открытия билета.

person Nicola Iarocci    schedule 16.02.2016
comment
откуда берется on_fetched_item? github. com/talkpython/ - person haytham; 10.05.2019
comment
У меня та же проблема, потому что ни один поставщик данных react-admin не понимает структуру словаря. Я попытался манипулировать ответом базы данных, используя функцию on_fetch_handler. Однако я не могу распаковать ключ словаря _items в список, потому что обратный вызов не имеет возвращаемых параметров, а Python не поддерживает замену параметра словаря списком внутри функции. В итоге я изменил функции _perform_aggregation и _perform_find в get.py, поэтому response — это список. - person ub_marco; 15.07.2020