什么是MongoDB';s$min?这与find().sort({the_字段:1}).limit(1)有何不同?

什么是MongoDB';s$min?这与find().sort({the_字段:1}).limit(1)有何不同?,mongodb,Mongodb,MongoDB与返回_字段最小值的函数之间有什么区别:db.the_collection.find().sort({the_字段:1}).limit(1) 如果每分钟有几百个调用来检索集合中的最小元素并每次独立使用它,我应该使用哪一个? 旁白:有人能告诉我正确的语法吗?使用$min给我一个集合中字段的最小值db.the_collection.find().min({the_field:10})不起作用。要获取“the_field”最低值的文档,应使用 db.the_collection.find

MongoDB与返回_字段最小值的函数之间有什么区别:
db.the_collection.find().sort({the_字段:1}).limit(1)

如果每分钟有几百个调用来检索集合中的最小元素并每次独立使用它,我应该使用哪一个?


旁白:有人能告诉我正确的语法吗?使用$min给我一个集合中字段的最小值
db.the_collection.find().min({the_field:10})
不起作用。

要获取“the_field”最低值的文档,应使用
db.the_collection.find().sort({the_字段:1}).limit(1)
在这里,我们首先对文档进行排序,然后从中取出第一个文档,正如您从查询中看到的

聚合$min:
当我们将文档分组到单个文档中,并且希望将此单个文档的值保持为其分组所在的所有文档中的最小值时,将使用它

$min运算符:
它用于特定索引的包含下限,以约束find()的结果。简单地说,如果对_字段进行了索引,并且我们希望对find()保留一些约束,那么我们可以使用它。通常用于提高性能。
您输入的语法是正确的,但它需要一个索引字段,结果将与您实际需要的不同。

因为min()需要字段上的索引,并强制查询使用此索引,即使可以选择更好的索引, 因此,如果可能,您必须选择$gte或查询的排序操作

db.the_collection.find().sort({the_field:1}).limit(1)
因此,上面的查询最好用作比较$min操作

请参阅下面提到的链接。

在无索引键上运行min运算符时,将出现以下错误

Error: error: {
    "$err" : "Unable to execute query: error processing query: ns=db.dbName limit=0 skip=0\nTree: status == \"approved\"\nSort: {}\nProj: {}\n planner returned error: unable to find relevant index for max/min query",
    "code" : 17007
}

您好,Imagine,我已通过_字段为我的集合编制了索引,并使用了
db.the_collection.find().min({the_字段:10})
,但出现了错误:
。。。Sort:{}\nProj:{}\n planner返回错误:找不到max/min查询的相关索引,“code”:17007
@Melissa:这是获取列的最低值rwo的查询,该列为\u field
db.the\u collection.find().Sort({u field:1}).limit(1)
$min运算符用于索引时提高find查询的性能,与获取\u字段的min行无关。哇,感谢imagin这么快的回复!我已经在\u字段应用了索引,所以调用
db.the\u collection.find().sort({the\u字段:1})。limit(1)可以吗
每分钟数百次?我希望数据库不会重复进行排序。是的,它不会产生任何问题。要提高性能,可以参考以下链接: