在ISO日期值

在ISO日期值

问题描述:

蒙戈聚合$过滤器,我有以下文件在ISO日期值

{ 
    "_id": "57b4c5f0291ebb13110b888e", 
    "first": "John", 
    "last": "Smith", 
    "email": "[email protected]", 
    "fulfillments": [ 
    { 
     "_id": "57b683e531a5a21679b78e6d", 
     "created_by_name": "John Smith", 
     "created_by_id": "57b4c5f0291ebb23110b888e", 
     "fulfilled_by_name": "John Smith", 
     "fulfilled_by_id": "57b4c5f0291ebb13110b888e", 
     "date": new Date("2016-08-23T13:58:15-0700") 
    } 
    ] 
} 

对于那些我有我只想返回尚未发生应验列表中选择一个蒙戈查询。这意味着履行嵌入式文档上的date属性大于当前时间。

db.users.aggregate([ 
    { $match : { "_id" : "57b4c5f0291ebb13110b888e" } }, 
    { $project : { 
      "fulfillments" : { 
       $filter : { 
        "input" : "$fulfillments", 
        "as" : "item", 
        "cond" : ...SOMETHING HERE TO FILTER ON 'date' 
       } 
      } 
     } 
    }, 
    { $unwind : "$fulfillments" }, 
    { $project : { 
      "created_by_name" : "$fulfillments.created_by_name", 
      "created_by_id" : "$fulfillments.created_by_id", 
      "fulfilled_by_name" : "$fulfillments.fulfilled_by_name", 
      "fulfilled_by_id" : "$fulfillments.fulfilled_by_id", 
      "date" : "$fulfillments.date" 
     } 
    } 
]) 

我无法找出正确的方法是过滤只应验了date尚未发生什么。

下应该给你想要的结果

... 
$project : { 
    "fulfillments" : { 
     $filter : { 
      "input" : "$fulfillments", 
      "as" : "item", 
      "cond" : { $gt: [ "$$item.date", new Date() ] } 
     } 
    } 
} 
...