Mongodb

如何在pyMongo中獲得最小值

  • July 27, 2015

我有一個包含多個欄位的集合,我想從中獲取最小值。我知道一個獲取最大值的命令:

collection.find_one(sort=[("myfield", -1)])["myfield"]

但不是一個獲得分鐘。有沒有辦法做到這一點?

您可以反轉排序方向以獲得最小值而不是最大值:

# Sort by myfield (ascending value) and return first document
collection.find_one(sort=[("myfield", 1)])["myfield"]

此範例假設:

  • myfield是一個數值(因此排序順序對於確定最小值或最大值是有意義的)
  • myfield存在於返回的匹配文件中(否則 Python 將KeyError在嘗試引用不存在的欄位時報告 a)。
  • 集合中的所有文件都有一個myfield值(沒有值的文件myfield將排在最小數值之前)

為確保您的排序基於實際具有myfield值的文件,您可以將其添加$exists到查詢條件中:

collection.find_one({"myfield": {"$exists": True}}, sort=[("myfield", 1)])["myfield"]

有關排序的更多資訊,請參閱:

引用自:https://dba.stackexchange.com/questions/108113