【发布时间】:2015-10-24 17:52:00
【问题描述】:
我正在使用 MongoDB 数据库开发一个应用程序,该数据库需要检查为今天的特定工作日启用的项目。 可以为一周中的任何一天启用项目。 (例如:周一和周三,或者周二和周四和周六,每天,等等)
我打算这样做:
var currentWeekDay = Math.pow(2,new Date().getDay());
因此
Sunday === 1
Monday === 2
Tuesday === 4
Wednesday === 8
...
Saturday === 64
示例项目可能是这样的
{_id:'blah', weekDays:127}
现在我要查询今天启用的所有项目...
MongoDB 有一个运算符 $and,但这仅用于逻辑操作。 它有 $bitsAnySet,但看起来它只在 3.16 中实现。 https://jira.mongodb.org/browse/SERVER-3518 我正在运行 MongoDB v2.6.10。
所以我想知道如何提出一个合理的可索引查询。
也许
{_id:'blah', w0:1, w1:1, w2:1, w3:1, w4:1, w5:1, w6:1} //every day
{_id:'blah', w0:1, w1:0, w2:0, w3:0, w4:0, w5:0, w6:1} //Sat and Sun
这很容易被索引。谁能想到更简洁的方法?
【问题讨论】:
-
是的,这是可能的。明智吗?不。请参阅@sheliak 的答案
标签: mongodb