Накануне Python? Где запрос возвращает пустой результат

У меня есть коллекция монго под названием Case, в которой есть следующие записи:

{
    _updated: "Tue, 26 Jul 2016 10:47:34 GMT",
    user_id: "ronaldo",
    client: "webapp",
    _links: {
        self: {
            href: "case/57972a253d73f156b5427ac3",
            title: "case"
        }
    },
    _created: "Tue, 26 Jul 2016 09:15:17 GMT",
    _id: "57972a253d73f156b5427ac3",
    _etag: "e85847955b97c2a339628071397ab4cafd959062"
},
{
    _updated: "Tue, 26 Jul 2016 09:20:50 GMT",
    user_id: "578ca6e4daaf452467ffa9f2",
    client: "webapp",
    _links: {
        self: {
            href: "case/57972b723d73f156b5427ac4",
            title: "case"
        }
    },
    _created: "Tue, 26 Jul 2016 09:20:50 GMT",
    _id: "57972b723d73f156b5427ac4",
    _etag: "6a6066ed62c91d0f79bbf3a362b567f8e7710f63"
}

Следующий запрос возвращает данные правильно:

http://localhost:8000/case?where={"user_id":"ronaldo"}

тогда как следующий запрос возвращает пустой набор результатов:

http://localhost:8000/case?where={"user_id":"578ca6e4daaf452467ffa9f2"}

Обратите внимание, что если я делаю запрос непосредственно в монго, он работает:

db.case.find({user_id: "578ca6e4daaf452467ffa9f2"})

Пожалуйста помоги!


person Raptor    schedule 28.07.2016    source источник


Ответы (1)


Похоже, ваш user_id иногда может содержать строки, похожие на objectid. Попробуйте установить query_objectid_as_string в настройках вашего ресурса. Цитируя документы:

Когда [query_objectid_as_string] включен, синтаксический анализатор Mongo не будет автоматически приводить избираемые строки к ObjectId. Это может быть полезно в тех редких случаях, когда у вас есть строковые поля в базе данных, значения которых на самом деле могут быть приведены к значениям ObjectId, но не должны. Это влияет на запросы (?where=) и анализ полезной нагрузки. По умолчанию имеет значение Ложь.

person Nicola Iarocci    schedule 28.07.2016
comment
Потрясающий! Работает как шарм! Бесконечно благодарен! - person Raptor; 28.07.2016
comment
с query_objectid_as_string = True, localhost:8000/case/578ca6e4daaf452467ffa9f2 больше не работает. - person Raptor; 29.07.2016