在流星中搜索日期范围

Mur*_*oso 6 mongodb meteor

我在Meteor中为一个项目做一个搜索系统,需要在两个日期之间进行搜索.但是,日期在MongoDB的数组中:

"relatorios" : [
    {
        "mes" : ISODate("2013-11-01T02:00:00Z"),
        "revistas" : "2",
        "brochuras" : "2",
        "livros" : "0",
        "folhetos" : "0",
        "revisitas" : "0",
        "estudos" : "0",
        "horas" : "12"
    },
    {
        "mes" : ISODate("2013-09-01T03:00:00Z"),
        "revistas" : "0",
        "brochuras" : "0",
        "livros" : "0",
        "folhetos" : "0",
        "revisitas" : "0",
        "estudos" : "0",
        "horas" : "12"
    }
]
Run Code Online (Sandbox Code Playgroud)

我试图直接通过mongo查询过滤日期,但不能.我在一些论坛上读过有关在Meteor中使用MapReduce的内容.什么是最好的选择?如果可能的话,我该怎么办?

Aks*_*hat 11

您可以使用点表示法,例如a和b之间的两个日期

var start = new Date(450000);
var end = new Date(5450000000000);

CollectionName.find({ 'relatorios.mes' : { $gte : start, $lt: end });
Run Code Online (Sandbox Code Playgroud)

因此,这将获得具有与该字段匹配的数组的所有文档.记住mongodb提取文档,所以如果你只有一个匹配的数组,它会给你整个文档.