Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
Mongodb 如何在集合中查找最近时间的排序/查询_Mongodb_Mongoose - Fatal编程技术网

Mongodb 如何在集合中查找最近时间的排序/查询

Mongodb 如何在集合中查找最近时间的排序/查询,mongodb,mongoose,Mongodb,Mongoose,我有一个名为sceanarios的文档集合,它有两个不同的gmt时间createDate和updateDate。我想根据最近的时间查询/排序文档,而不管最近的时间是在createDate还是updateDate中。您可以使用聚合框架执行此操作,如下所示: db.yourColl.aggregate( {$project:{ greaterDate: {$c

我有一个名为sceanarios的文档集合,它有两个不同的gmt时间
createDate
updateDate
。我想根据最近的时间查询/排序文档,而不管最近的时间是在createDate还是updateDate中。

您可以使用聚合框架执行此操作,如下所示:

db.yourColl.aggregate(
                 {$project:{ 
                     greaterDate:
                                {$cond:[{$gt:["$createDate","$updateDate"]},
                                 "$createDate",
                                 "$updateDate"]
                                }
                           }
                 },
                 {$sort:{ greaterDate:-1}})

但是,您需要枚举希望保留在$project节中的所有字段

我想如果有更新日期,它总是比createDate更新?那么,为什么不在所有尚未更新的文档中添加updateDate=createDate并始终使用它呢?我认为这比在find和sort中找到最小值要简单得多。