流星:如何按日期过滤本地集合

meteor: how to filter local collection by date

我有一个订阅的集合 entries,其中包含具有类型属性(例如 "post" 或 "article")和两个可用日期(available_fromavailable_to).这些条目通过 RESTful API 上传到数据库中,available_fromavailable_to 的值存储为 ISODates 形式

"available_to" : ISODate("2017-06-01T00:00:00Z")

问题是,一旦我尝试进行搜索(从表单中获取值并以下列方式创建搜索散列),它就会变成空的:

"click #search-trigger": ->
  $entry_type = $('#fullsearch-entry-type').val()
  $from = Date.create(moment($('#fullsearch-from').val(), "DD.MM.YYYY").format())
  $to = Date.create(moment($('#fullsearch-to').val(), "DD.MM.YYYY").format())

  searchHash =
    available_from:
      $gte: $from
    available_to:
      $lte: $to
    entry_type: $entry_type

  console.log searchHash
  console.log typeof $from
  console.log typeof $to

  console.log Entry.find(searchHash).fetch()

使用 SugarJS 将日期转换为正确的日期对象(因为输入字段中的值采用 DD.MM.YYYY 的形式,否则如果我假设正确的话,它只是一个字符串)。

我尝试了重写日期值的不同变体,遗漏了两个日期之一或遗漏了我的搜索哈希并在 find() 查询中手动输入查询选项,但无济于事。我希望有人能指出我正确的方向,因为我已经为此焦头烂额了:)

正如 mwarren 所说,问题是 Sugar + moment - 一旦我退后几步并坚持使用纯 JS 日期,我的问题就消失了。