如何在流星集合中的对象中检索数组的子集?

时间:2015-01-18 15:19:40

标签: meteor

希望有人可以帮忙!我在meteor中有一个集合,其中包含以下格式包含温度读数数组的对象:

   "temp_readings": [
        {
            "reading_time": {
                "$date": "2015-01-18T11:54:00.700Z"
            },
            "temp_F": 181.76
        },
        {
            "reading_time": {
                "$date": "2015-01-18T11:55:00.700Z"
            },
            "temp_F": 187.16
        },
        {
            "reading_time": {
                "$date": "2015-01-18T11:56:00.700Z"
            },
            "temp_F": 190.76
        },
        {
            "reading_time": {
                "$date": "2015-01-18T11:57:00.700Z"
            },
            "temp_F": 196.16
        }
    ]

我可以在客户端流星代码中检索这个完整的数组,但我现在想要根据用户设置的日期/时间只读取该数组的一个子集。因此,例如检索数组的子集,该子集只有等于或晚于" 2015-01-18T11:56:00.700Z" ...我知道我可以用选择性发布/订阅方法做一些事情但是现在客户端有一种简单的方法来检索这个数据子集吗?也许一些javascript方法可以帮助吗?

提前致谢, 瑞克

1 个答案:

答案 0 :(得分:0)

// or however you fetch your document
var doc = MyCollection.findOne();

if (!doc)
  return [];

// ensure temps is an array
var temps = doc.temp_readings || [];

// return an array of temp readings where the date is > someOtherDate
return _.filter(temps, function(temp) {
  return temp.reading_time.$date > someOtherDate;
});