sql >> データベース >  >> NoSQL >> MongoDB

mongodbの日付文字列を比較することは可能ですか?

    レコードを選択する場合は、日付範囲を使用します:

    db.collection.find({
        created: { "$gte": new Date("2013-05-27"), "$lt": new Date("2013-05-28") }
    })
    

    そして、2つの日付の間に含まれるすべての時間、分などが選択されます。

    だからあなたはすべき 文字列に強制するのではなく、日付の値を使用しようとしている。

    集計を行うためにこれが必要な場合、またはその他の方法で必要 結果は1日のみの形式で表示され、 $project> と日付 operator

    db.collection.aggregate([
        // Still match on the normal date forms, this time whole month
        { "$match": {
            created: { 
               "$gte": new Date("2013-05-01"), 
               "$lt": new Date("2013-05-31") 
            }
        }},
    
        // Project the date
        { "$project": {
            "date": {
                "year"  : { "$year"  : "$created" },
                "month" : { "$month" : "$created" },
                "day":  : { "$dayOfMonth": "$created" }
            },
            "title": 1
        }},
    
        // Group on day and title
        { "$group": {
            "_id": {
                "date"  : "$date",
                "title" : "$title"
            },
            "count": { "$sum": 1 }
        }},
    
        // Sort by date
        { "$sort": { 
            "_id.date.year": 1,
            "_id.date.month": 1,
            "_id.date.day": 1,
        }},
    
        // Project nicer dates and document
        { "$project": {
            "_id": 0,
            "date": { "$concat": [
                { "$substr": [ "$_id.date.year", 0, 4 ] },
                "-",
                { "$substr": [ "$_id.date.month", 0, 2 ] },
                "-",
                { "$substr": [ "$_id.date.day", 0, 2 ] }
            ]},
            "title": "$_id.title",
            "count": 1
        }}
    ])
    



    1. MongoDBgroupby個別の並べ替え

    2. Meteorの実行中に、別のクライアントからMeteorのMongoDBにアクセスするにはどうすればよいですか?

    3. MongoMapReduceの初回

    4. mongoコンソールで日付フィールドを更新するにはどうすればよいですか?