【问题标题】:Get latest Document with respect to (time or Id) using Pymongo only仅使用 Pymongo 获取关于(时间或 ID)的最新文档
【发布时间】:2020-03-04 02:47:56
【问题描述】:

在 MongoDB 中,这种技术通常用于获取关于(时间或 ID)的最新文档:

 db.collection.find().sort({ "_id": -1 }).limit(1);

 MySchema.find().sort({ _id: -1 }).limit(1)

db.getLastInsertedDocument.find({}).sort({_id:-1}).limit(1);

但是当我使用 pymongo 在我的集合中查找最新条目时,下面的代码会出错。

from pymongo import MongoClient

import random
import datetime
import time
import pprint
from datetime import datetime
#from bson import ObjectId

client = MongoClient()
client = MongoClient('localhost', 27017)
db = client.sensor_temperature # createdb
posts = db.posts2
print('Total Record for the collection: ' + str(posts.count()))

x=datetime.now().strftime("%H:%M:%S")

record=posts.find().sort({ "_id": -1 }).limit(1)  ###  ERR
#record=posts.find({"start_date":new Date()}).pretty() ####  ERR
#record=posts.findOne({"_id": x}) #### <pymongo.cursor.Cursor object at 0x0141FCD0>
pprint.pprint(record)
text=record
print(text)

如何仅使用 Pymongo 获取最新记录?

【问题讨论】:

    标签: python-3.x mongodb mongodb-query pymongo pymongo-2.x


    【解决方案1】:

    某些 pymongo 驱动程序命令与 mongodb shell 不完全匹配。 The documentation 解释了方法调用。这应该有效:

    from pymongo import MongoClient, DESCENDING
    <...>
    record=posts.find().sort('_id', DESCENDING).limit(1)
    pprint.pprint(list(record)[0])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 2016-08-04
      • 1970-01-01
      • 2014-10-18
      • 1970-01-01
      相关资源
      最近更新 更多