Wil*_*Wee 8 mongodb mongodb-query
例如,我有一个具有以下架构的集合:
{
timestamp: new Date(some-arbitrary-specific-datetime),
some-other-field: any-type.
}
Run Code Online (Sandbox Code Playgroud)
一个常见的查询是过滤和获取时间戳范围的文档:
collection.find({
timestamp: {$lte: someDate, $gte: someLaterDate}
})
Run Code Online (Sandbox Code Playgroud)
性能很重要,因为这个集合很大,并且查询可能返回超过 10 万个文档。
在我的查询中,我只对达到天级别的粒度感兴趣。
我想知道是否可以根据timestamp's day 而不是确切的 DateTime在集合上创建索引?
我知道可以在应用程序代码中执行此操作,方法是向集合中添加一个新字段并创建一个具有最高日级别粒度的 Date 并以相同的方式对其进行查询,即:
{
timestamp: new Date(1476479514),
date: new Date("2016-10-14"),
some-other-field: any-type
}
Run Code Online (Sandbox Code Playgroud)
并查询:
collection.find({
date: {$lte: new Date("2016-10-14"), $gte: new Date("2016-10-12")}
})
Run Code Online (Sandbox Code Playgroud)
并创建索引:
collection.collectionName.createIndex({date: 1});
Run Code Online (Sandbox Code Playgroud)
但现在在应用程序代码中这样做是不可行的。我可以仅使用该timestamp字段创建性能相似的索引吗?
| 归档时间: |
|
| 查看次数: |
1770 次 |
| 最近记录: |