Mongodb 如何在集合中查找最近时间的排序/查询
我有一个名为sceanarios的文档集合,它有两个不同的gmt时间Mongodb 如何在集合中查找最近时间的排序/查询,mongodb,mongoose,Mongodb,Mongoose,我有一个名为sceanarios的文档集合,它有两个不同的gmt时间createDate和updateDate。我想根据最近的时间查询/排序文档,而不管最近的时间是在createDate还是updateDate中。您可以使用聚合框架执行此操作,如下所示: db.yourColl.aggregate( {$project:{ greaterDate: {$c
createDate
和updateDate
。我想根据最近的时间查询/排序文档,而不管最近的时间是在createDate还是updateDate中。您可以使用聚合框架执行此操作,如下所示:
db.yourColl.aggregate(
{$project:{
greaterDate:
{$cond:[{$gt:["$createDate","$updateDate"]},
"$createDate",
"$updateDate"]
}
}
},
{$sort:{ greaterDate:-1}})
但是,您需要枚举希望保留在$project节中的所有字段我想如果有更新日期,它总是比createDate更新?那么,为什么不在所有尚未更新的文档中添加updateDate=createDate并始终使用它呢?我认为这比在find和sort中找到最小值要简单得多。