日期和MongoDB - 失败

时间:2017-06-07 01:55:59

标签: node.js mongodb date search isodate

我发现了一些关于在mongodb中使用日期的文档。不幸的是,它似乎没有像它应该的那样工作。这是我的问题......我正在尝试按日期查询。当我使用find()搜索时,这就是我的文档:

{
    "_id": ObjectId("5935ff97d1d72d2134d7ad8f"),
    "username": "Test",
    "email": "test@test",
    "password": "sha1$8dbb9bdc$1$b0096596e0e3aba3ad883489bc713b0462ad6472",
    "access": "test",
    "cookies": [{
            "hash": "ZOddh981SZ7uiw3XPQYwJzET18byscWo3BV0RzIc8Eo8QY2VdlVm23qs28AAvxPx",
            "exipires": ISODate("2017-06-12T01:34:45.895Z")
        }, {
            "hash": "gk8voLrc2JtX832GExcWlSoVdjkiEoFAvLQAayevtPJGJ7tCchYAP0it93aAMBlb",
            "exipires": "ISODate(\"2017-06-11 20:37:10.167\")"
        }
    ]   
}

(正如你所看到的,我有2个饼干。一个在日期周围有转义报价,一个没有。)

以下是我到目前为止所尝试的搜索:

db.getCollection("auth").find({ 'cookies.expires': {'$gte': {$date: "2017-06-07T01:37:14.362Z"} } })
db.getCollection("auth").find({ 'cookies.expires': {'$lte': {$date: "2017-06-07T01:37:14.362Z"} } })
db.getCollection("auth").find('cookies.expires': { '$gte': new ISODate("2017-06-07T01:37:14.362Z") } })
db.getCollection("auth").find('cookies.expires': { '$lte': new ISODate("2017-06-07T01:37:14.362Z") } })
db.getCollection("auth").find('cookies.expires': { '$gte': new ISODate() } })
db.getCollection("auth").find('cookies.expires': { '$gte': new Date("2017-06-07T01:37:14.362Z") } })
db.getCollection("auth").find('cookies.expires': { '$lte': new Date("2017-06-07T01:37:14.362Z") } })
db.getCollection("auth").find('cookies.expires': { '$gte': new Date("2017-06-07T01:37:14.362Z") } })

我非常肯定搜索应该是$ gte,因为我想找到未来的所有日期。但我已经尝试了两种方式,以防万一它与我的预期相反。

这些都不起作用,我无法弄清楚为什么 - 现在已经好了2个小时了。一双新鲜的眼睛将不胜感激。

1 个答案:

答案 0 :(得分:0)

db.getCollection("auth").find({
      'cookies.expires': { '$gte': ISODate("2017-06-07T01:37:14.362Z") } 
})