Запрос даты на mongodb с Python возвращает пустое значение - PullRequest
0 голосов
/ 25 февраля 2020

Мне нужно получить данные на основе указанной даты из mongodb. Когда я пытаюсь код ниже, я получаю пустой список. Когда я проверяю db, я вижу документы с указанными датами.

Мой код:

db = connect.order_db

select_date_iso = datetime.date(2020,2,18).isoformat()

result = db.koleksiyon.find({u"zaman_pulu": select_date_iso}).sort("zaman_pulu")

for num, doc in enumerate(result):
    print (num, "--", doc, "\n")

И запись внутри db:

enter image description here

без ошибок, но также без данных.

1 Ответ

1 голос
/ 25 февраля 2020

MongoDB хранит даты как количество миллисекунд с начала эпохи.

Дата, которую вы запрашиваете, «2020-02-18» будет 1581984000000, а в документе указывается «2020-02-18T23: 39: 47.761Z», то есть 1582069187761.

Они не удовлетворяют совпадению равенства.

Вы можете либо использовать ранжированное совпадение> = '2020-02-18' и <'2020-02-19', либо использовать агрегирование с такими операторами, как <a href="https://docs.mongodb.com/manual/reference/operator/aggregation/dayOfMonth/index.html#dayofmonth-aggregation" rel="nofollow noreferrer"> $ dayOfMonth , чтобы разбить дату на части для сравнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...