Вопрос:

Ева - Можно ли удалить ключ из документа?

eve

182 просмотра

1 ответ

1146 Репутация автора

В схеме с необязательными значениями, такими как codeв примере:

'code': {
    'type': 'string',
},
'name': {
    'type': 'string',
    'required': True,
},
'email': {
    'type': 'string',
    'required': True
}

Допустим, есть вставленный документ со значением для code. Могу ли я codeкак- mongodb $unsetнибудь сбросить ключ , используя Eve?

Автор: gcw Источник Размещён: 22.08.2016 08:18

Ответы (1)


0 плюса

5891 Репутация автора

Одним из способов достижения этого является настройка проекции по умолчанию для конечной точки.

Ограничение набора полей, предоставляемого конечной точкой API. По умолчанию ответы API на запросы GET будут включать все поля, определенные соответствующей схемой ресурса. Параметр проекции ключевого слова ресурса источника данных позволяет переопределить поля.

people = {
    'datasource': {
        'projection': {'username': 1}
    }
}

Приведенная выше настройка будет отображать только поля имени пользователя для запросов GET, независимо от схемы, определенной для ресурса.

Другой вариант - использовать саму структуру агрегации MongoDB. Просто установите конечную точку так, чтобы агрегация выполнялась до того, как данные будут возвращены клиенту. Следующее должно работать (см. Документы для деталей):

posts = {
    'datasource': {
        'aggregation': {
            'pipeline': [{"$unset": "code"}]
        }
    }
}

Вам нужна Eve v0.7 для поддержки агрегации.

Автор: Nicola Iarocci Размещён: 24.08.2016 08:06
Вопросы из категории :
32x32