Получить значение одного столбца из последней записи в mongo-db

#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}}])