【问题标题】:Get component of Date / ISODate in mongo在mongo中获取日期/ ISODate的组件
【发布时间】:2012-05-02 12:03:37
【问题描述】:

如何从存储在MongoCollection中的ISODate获取minute之类的组件?

【问题讨论】:

    标签: datetime mongodb mongodb-query isodate


    【解决方案1】:

    由于您没有指定语言,我假设您指的是 JavaScript,就像在 shell 中一样。

    shell 的一个不错的功能是它具有制表符补全功能。所以你可以这样做:

    > db.test.insert({x:new Date()});
    > var doc = db.test.findOne();
    > doc
    {
    "_id" : ObjectId("4fa131851932655dc45027a9"),
    "x" : ISODate("2012-05-02T13:07:17.012Z")
    }
    > doc.x
    ISODate("2012-05-02T13:07:17.012Z")
    > doc.x.<TAB><TAB>
    doc.x.constructor            doc.x.getSeconds(            doc.x.getUTCMinutes( doc.x.setHours(              doc.x.setUTCHours(           doc.x.toLocaleDateString(
    doc.x.getDate(               doc.x.getTime(               doc.x.getUTCMonth(           doc.x.setMilliseconds(       doc.x.setUTCMilliseconds(    doc.x.toLocaleString(
    doc.x.getDay(                doc.x.getTimezoneOffset(     doc.x.getUTCSeconds(         doc.x.setMinutes(            doc.x.setUTCMinutes(         doc.x.toLocaleTimeString(
    doc.x.getFullYear(           doc.x.getUTCDate(            doc.x.getYear(               doc.x.setMonth(              doc.x.setUTCMonth(           doc.x.toString(
    doc.x.getHours(              doc.x.getUTCDay(             doc.x.hasOwnProperty(        doc.x.setSeconds(            doc.x.setUTCSeconds(         doc.x.toTimeString(
    doc.x.getMilliseconds(       doc.x.getUTCFullYear(        doc.x.propertyIsEnumerable(  doc.x.setTime(               doc.x.setYear(               doc.x.toUTCString(
    doc.x.getMinutes(            doc.x.getUTCHours(           doc.x.setDate(               doc.x.setUTCDate(            doc.x.toDateString(          doc.x.tojson(
    doc.x.getMonth(              doc.x.getUTCMilliseconds(    doc.x.setFullYear(           doc.x.setUTCFullYear(        doc.x.toGMTString(           doc.x.valueOf(
    

    你想要的大概是:

    > doc.x.getSeconds();
    17
    > doc.x.getMinutes();
    7
    > doc.x.getHours();
    9
    > doc.x.getDate();
    2
    > doc.x.getMonth();
    4
    > doc.x.getFullYear();
    2012
    

    【讨论】:

    • 为什么 'doc.x.getMonth();' 返回 4 而不是 5。
    • 可能是因为 MongoDB 使用从零开始的索引(从 0 而不是 1 开始计数)
    • getMonth() 是javascript函数。它从 0 开始。看到这个w3schools.com/jsref/jsref_getmonth.asp
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 2017-05-21
    • 1970-01-01
    相关资源
    最近更新 更多