Я только начал использовать mongoDB (версия 3.6.8) сегодня, и мне это нравится.
Я читал, что возможно иметь объект даты непосредственно в базе данных, но я не могу заставить его работать.
Также мне было интересно, является ли это лучшим решением или я должен просто сохранить свои даты как «Epoch millis» вместо этого?
Я пытаюсь использовать $dateFromString
ключевое слово, которое должно работать, но я получаю эту ошибку:
bson.errors.InvalidDocument: key '$dateFromString' must not start with '$'
Мой код выглядит так:
from datetime import date
import pymongo
dbcli = pymongo.MongoClient('mongodb://192.168.1.8:27017')
db = dbcli['washbase']
col = db['machine']
def conv(dato):
return {
'$dateFromString': {
'dateString': dato,
'format': '%Y-%m-%d',
'timezone':'Europe/Copenhagen',
}
}
today = date.today().isoformat()
data = {
'day': conv(today),
'time':12,
'room':'2B',
}
col.insert_one(data)
Причина, по которой мне нужно что-то вроде объекта даты в базе данных потому что я хочу выполнить условный запрос к данным, чтобы база данных отправляла только те данные, которые мне нужны. Поэтому я ожидаю сделать что-то вроде этого.
result = col.find(
{
'day' : {
'$gt' : {
'$date' : '2020-01-01'
}
}
}
)
for x in results:
print(x)
Но когда я делаю это, приложение ничего не печатает.