2014-10-01 6 views
0

Мне нужно удалить конкретный столбец (в данном случае «Идентификатор бумаги») из DictField (в данном случае «контент») во всех документах. Соответствующий сценарий Монго-оболочка для жеУдаление столбца из DictField в MongoDB [Flask + MongoEngine]

db.list_input_file.update({},{$unset:{"content.Paper ID":1}}, false, true); 

Как я пишу то же самое, используя MongoEngine предполагая, что моя модель класс называется JListInputFile. documentation для этого не очень полезно.

ответ

1

Я думаю, что проблема у Вас есть пространство в имени поля означает, что вы не можете передать его в качестве ключевого слова аргумент, например:

JListInputFile.objects.update(unset__content__Paper ID=1) 

работает ли с использованием словаря kwargs:

JListInputFile.objects.update(**{"unset__content__Paper ID": 1}) 
+0

Ах! Благодаря тонну. –

+0

Я чувствую себя глупо, спрашивая об этом, я подумал, как только я понял, как удалить столбец, переименование его будет иметь аналогичную конструкцию. Но, к сожалению, нет конструкции под названием rename. Не могли бы вы помочь мне с примером переименовать запрос? –

+0

не могли бы вы мне помочь? Кроме того, мне очень сложно перевести запросы MongoDB, относящиеся к DictionaryField, к запросу MongoEngine. Не могли бы вы указать на какой-то учебник, который я мог бы использовать для одного и того же? –