#python #python-3.x #mongodb #mongodb-query #pymongo
#python #python-3.x #mongodb #mongodb-запрос #pymongo
Вопрос:
Я хочу получить только одно значение столбца из последней записи в mongodb.
Предположим, что имя моей коллекции: test
используя этот запрос для извлечения последней записи :
db.test.find({}).sort({'_id': -1}).limit(1)
документы :
{ "_id" : ObjectId("5f7c540b5e707b3df75bb844"), "date" : "2020-10-06", "time" : "16:55:00.216298"}
{ "_id" : ObjectId("5f7c542e5e707b3df75bb849"), "date" : "2020-10-06", "time" : "16:55:35.423938"}
Приведенный выше запрос выдаст мне последнюю запись.
Теперь я хочу получить значение даты из последней записи. Я знаю один способ :
db.test.find({},{'date':1}).sort({'_id': -1}).limit(1)
Но предположим, я не знаю индекс даты, тогда каким должен быть запрос? Может быть, если вы можете предоставить ответ на python.
Комментарии:
1. что вы подразумеваете под «индексом даты»? вы не используете «индекс» для отображения результата. вы должны использовать «имя поля». если вы не знаете имя нужного поля, вы не сможете спроецировать результат.
Ответ №1:
Чтобы получить желаемый результат, вы можете использовать агрегацию:
db.test.aggregate([{'$sort': {'_id': 1}},
{'$limit': 1},
{'$project': {'_id': 0, 'time': 0, 'date': 1}}])