MongoDB показывает противоречивые результаты при запросе с использованием pymongoPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 MongoDB показывает противоречивые результаты при запросе с использованием pymongo

Сообщение Anonymous »

Я работаю с pyMongo, подключаясь к базе данных клиента. Конкретная коллекция, к которой я запрашиваю, состоит из документов с полем под названием items, которое может представлять собой пустой список или содержать ряд вложенных документов.
Например, документ может выглядеть так: это:
Изображение

Меня интересуют документы, у которых есть непустой список товаров и цена которых не равна 0.
Для запроса я сначала попробовал напрямую с помощью API следующим образом:
р>

Код: Выделить всё

cursor=colecc_cotizaciones.find({"items":{"$ne":[]},"items.price":{"$ne":0},"date":{"$gte":datetime(2023,9,1),"$lt":datetime(2023,10,16)}})
i =0
for doc in cursor:
i+=1
print(i)
За указанные даты было показано только 42 результата. Мне это показалось странным. Частота должна быть больше. Чтобы провести анализ, я создал DataFrame и поместил туда данные с помощью нормализации JSON:

Код: Выделить всё

df = pd.json_normalize(
no_vacias,
record_path=['items'],  # Path to the nested list you want to flatten
meta=[
'id',
'date','city',
'company'
]
)
И когда я запрашиваю этот DataFrame, я получаю совсем другое количество результатов:

Код: Выделить всё

df_filtered = df[(df["date"] < "2023-10-16") & (df["date"] > "2023-09-01") & (df["price"] != 0)]
df_filtered_grouped = df_filtered.groupby('id').first()
df_filtered_grouped
Обратите внимание, что я группирую по одному и тому же идентификатору. Хотя у меня получается 217 строк, а не 42.
Я не совсем понимаю, почему получаю разные результаты.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-pymongo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»