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

mongodbのISODateを使用した日付クエリが機能していないようです

    $date はMongoDB拡張JSONの一部であり、これがmongoexportでデフォルトとして取得されるものです。 クエリの一部として実際に使用できるとは思いません。

    $dateで正確な検索を試みる場合 以下のように:

    db.foo.find({dt: {"$date": "2012-01-01T15:00:00.000Z"}})
    

    エラーが発生します:

    error: { "$err" : "invalid operator: $date", "code" : 10068 }
    

    これを試してください:

    db.mycollection.find({
        "dt" : {"$gte": new Date("2013-10-01T00:00:00.000Z")}
    })
    

    または(@ user3805045によるコメントに続く):

    db.mycollection.find({
        "dt" : {"$gte": ISODate("2013-10-01T00:00:00.000Z")}
    })
    

    ISODate 時間なしで日付を比較する必要がある場合もあります(@MattMolnarで示されます)。

    mongo Shellのデータ型によると、両方とも同等である必要があります:

    mongoシェルは、文字列またはDateオブジェクトとして日付を返すためのさまざまなメソッドを提供します。

    • 現在の日付を文字列として返すDate()メソッド。
    • ISODate()ラッパーを使用してDateオブジェクトを返す新しいDate()コンストラクター。
    • ISODate()ラッパーを使用してDateオブジェクトを返すISODate()コンストラクター。

    ISODateを使用します それでもDateオブジェクトを返す必要があります。

    {"$date": "ISO-8601 string"} 厳密なJSON表現が必要な場合に使用できます。考えられる例の1つは、Hadoopコネクタです。



    1. SpringdatamongoはクエリでORを使用します

    2. RedisはPostgreSQLのようなデータベースに書き出すことができますか?

    3. MongoDB-ページング

    4. Redisに一括取り込み