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

MongoDB $ currentDate

    MongoDBでは、$currentDate 演算子は、フィールドの値を現在の日付に設定します。

    日付として設定できます またはタイムスタンプ タイプ。デフォルトは日付です 。

    $currentDate 更新です 演算子であり、ドキュメントを更新する場合にのみ使用でき、挿入する場合には使用できません(ただし、アップサート操作では使用できます)。

    dogsというコレクションがあるとします。 次のドキュメントで:

    {
    	"_id" : 1,
    	"name" : "Wag",
    	"goodDog" : true,
    	"dateModified" : ISODate("2020-01-01T00:00:00Z")
    }

    そして、ドキュメントに変更を加えたいと思います。変更を加えるときは、dateModifiedを更新する必要があります 変更日までのフィールド。

    したがって、$currentDateを使用できます 日付を現在の日付に設定する演算子。次のようなことができます:

    db.dogs.update( 
      { _id: 1 }, 
      {
        $currentDate: {
          dateModified: true
        },
        $set: {
          goodDog: false
        }
      }
    )

    ここでは、dateModified: trueを使用します 日付を使用して日付を設定するには タイプ(これは、日付として設定する簡単な方法です。 タイプ)。

    コレクション/ドキュメントをもう一度確認することで、結果を確認できます:

    db.dogs.findOne()

    結果:

    {
    	"_id" : 1,
    	"name" : "Wag",
    	"goodDog" : false,
    	"dateModified" : ISODate("2021-01-16T04:17:41.206Z")
    }

    dateModified フィールドが現在の日付(つまり、更新を実行した日時)に更新されました。 goodDog フィールドも指定どおりに更新されました。

    タイムスタンプ

    デフォルトでは、$currentDate 日付を使用します タイプ。または、ドキュメントでタイプを指定することもできます。したがって、{$type: timestamp}を使用できます 日付がタイムスタンプに更新されるようにします BSONタイプ。

    例:

    db.dogs.update( 
      { _id: 1 }, 
      {
        $currentDate: {
          dateModified: { $type: "timestamp" }
        },
        $set: {
          goodDog: true
        }
      }
    )

    この場合、タイムスタンプを指定したドキュメントを提供しました タイプ。

    この方法は、日付にも使用できます。 タイプします(または前の例で見たように省略形の方法を使用します)。

    コレクションを確認してください:

    db.dogs.findOne()

    結果:

    {
    	"_id" : 1,
    	"name" : "Wag",
    	"goodDog" : true,
    	"dateModified" : Timestamp(1610771023, 1)
    }


    1. HadoopMapReduceのデータローカリティの概要

    2. ソートされたオブジェクトのセットをredisに保存するにはどうすればよいですか?

    3. MongoError:「cursor」オプションが必要です。ただし、explain引数を使用した集計は除きます。

    4. なぜMongoDBはそれほど多くのスペースを占めるのですか?