Я использую Python 3.7 с пакетом pymongo 3.7.2.У меня есть запрос для подсчета количества документов, соответствующих некоторым критериям, где поле даты (в запросе "tpep_pickup_datetime") находится между определенными пределами.Приведенный ниже запрос MongoDB прекрасно работает в оболочке Mongo и коде Python, установленном между 0000 часами и 0100 часами:
countRequired = collection.count_documents( {"tpep_pickup_datetime": {"$gte": "2018-06-01 00:00:00", "$lt": "2018-06-01 01:00:00"}} )
Но теперь мне нужно указать ограничения времени, использованные выше, используя строковую переменную, которую я выберуиз списка в общем цикле.Поэтому я хочу использовать конвейерную переменную для построения запроса.А затем используйте переменную конвейера, как я часто делал для запросов агрегатного типа.Что я хочу сделать, это:
1) конвейер = [].Например, конвейер для одной итерации моего цикла будет построен как [{"tpep_pickup_datetime": {"$ gte": "2018-06-01 00:00:00", "$ lt": "2018-06-0101:00:00 "}}] и следующий цикл будет выглядеть как [{" tpep_pickup_datetime ": {" $ gte ":" 2018-06-01 01:00:00 "," $ lt ":" 2018-06-01 02:00:00 "}}] и, таким образом, циклически проходите каждый из 24 часов.
2) Далее используйте переменную конвейера следующим образом:
countRequired = collection.count_documents( pipeline )
Но яполучить сообщение об ошибке «OperationFailure: фильтр соответствия должен быть выражением в объекте».Извините, но история трассировки очень длинная, и я не могу вставить ее сюда.
Спасибо и С уважением, rbewoor