Pymongo查询以使用Python从Mongodb中的集合中获取最新文档

2024-09-28 01:28:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用pymongo并使用以下查询从集合中获取文档:

coll_employee = db.get_collection('employeeDetails')
query1 = [{'$match': {'EmployeeId': ObjectId('5edde542f6468910e080e462')}}]
document = coll_employee.aggregate(query1)
tmp1_list = []
for i in document:
    tmp1_list.append(i)
print(tmp1_list)

我正在基于EmployeeId进行查询,这是一个ObjectId。运行上面的代码,我将获得集合中的所有文档。有没有办法,我们只能得到创建的最新文档。请帮忙。谢谢


Tags: 文档dbgetmatchemployeedocumentlistcollection
3条回答

您好,如果需要最新的记录,可以按ObjectID(-1)进行排序,然后使用限制操作仅检索第一条记录

这类似于对集合运行以下查询

db.coll_employee.select({'$match': {'EmployeeId': ObjectId('5edde542f6468910e080e462')}}).sort('_id':-1).limit(1)

以下是对我有效的解决方案:

query1 = {'EmployeeId': ObjectId('5edde542f6468910e080e462')}
document = coll_employee.find(query1).sort('_id', 1).limit(1)

PyMongo的语法与MongoShell的语法略有不同。您不需要为此使用聚合,一个简单的find()方法可以与sort()limit()方法一起工作。以下查询将有帮助:

db.coll_employee.find().sort('_id',-1).limit(1)

您可以使用任何字段,这些字段在我们插入时会递增,就像您在注释中所说的,您有created字段。因此,您可以使用此字段来代替_id

相关问题 更多 >

    热门问题