Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting MongoDB日期排序中的粒度?_Sorting_Date_Mongodb_Granularity - Fatal编程技术网

Sorting MongoDB日期排序中的粒度?

Sorting MongoDB日期排序中的粒度?,sorting,date,mongodb,granularity,Sorting,Date,Mongodb,Granularity,是否可以按粒度对MongoDB的日期值进行排序 我想按日期排序结果,但我不关心小时/分/秒数据。我不希望存储像“20101215”这样的附加参数。您的问题的简短答案是“否”。不存储另一个字段是不可能的。即使在Mongo中进行排序时,您可能不希望使用b/c,但您确实需要为排序依据的字段编制索引,否则数据库将需要扫描数据库中的每个文档来进行排序。因此,如果要按照您的建议进行操作,您还需要在部分日期字段上建立索引,这在mongo中也是不可能的 我认为最好的方法是存储两个字段,一个用于年/月/日,另一个

是否可以按粒度对MongoDB的日期值进行排序


我想按日期排序结果,但我不关心小时/分/秒数据。我不希望存储像“20101215”这样的附加参数。

您的问题的简短答案是“否”。不存储另一个字段是不可能的。即使在Mongo中进行排序时,您可能不希望使用b/c,但您确实需要为排序依据的字段编制索引,否则数据库将需要扫描数据库中的每个文档来进行排序。因此,如果要按照您的建议进行操作,您还需要在部分日期字段上建立索引,这在mongo中也是不可能的

我认为最好的方法是存储两个字段,一个用于年/月/日,另一个用于小时/分钟/秒。然后,您将在排序和索引方面具有更大的灵活性。它不像您可能希望的那样干净或理想,但这是db的唯一选项


另一种选择是在结果返回后优化应用程序中的顺序。

如果您“不在乎”,那么在排序时使用完整日期又有什么关系呢?当结果按日期时间排序时,它们仍然按日期排序。@Hightechrider此用例适用于新闻网站。我存储新闻项目的创建和更新时间,但网站首页需要按日期(即2010-12-17)排序,然后按其他因素排序。如果我按准确的时间戳排序,所有其他因素都没有意义,因为每个项目在该日期内都有不同的小时/分钟/秒。在MySQL中,我会按照
按日期排序(created),优先级
来做一些事情。