【发布时间】:2013-04-07 18:27:53
【问题描述】:
Mongoose 架构包括:
{
dueDate: { type: Date, required: false }
}
我的目标是获取按dueDate 排序的文档,其中最早的日期在顶部,然后是没有dueDate 的其余文档。我的问题是不需要截止日期,因此没有截止日期的文档会排在具有有效日期的文档之上。
这就是我的排序方式(node.js 和 mongoose.js):
query.sort({ dueDate: 'asc' });
我主要是在寻找一种内置的方法来做到这一点;我已经通过组合查询实现了一个 hack。
【问题讨论】:
-
en.wikipedia.org/wiki/Lexicographical_order 执行此操作,如果您希望这些值显示在底部,则需要为日期创建一个“最大值”并使用该最大值作为默认值来初始化您的文档。
-
不幸的是,还有其他事情取决于该字段是否为空。我可能会考虑重新架构,但它不会。感谢您的意见。
-
已经考虑过改变这一点,以便只有字母序列受此影响,实际上在某些地方有 JIRA 票,但我不擅长搜索,但是的,这是关于“陷阱”之一不幸地从 SQL 迁移到 MongoDB :(
标签: javascript node.js mongodb sorting mongoose