MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBでタイムスタンプを更新し、現在の日付に設定する方法

MongoDBでタイムスタンプを更新し、現在の日付に設定する方法

MongoDBでドキュメントを更新するにはupdate()メソッドを使用します。フィールドを現在の日付に設定したい場合は、まずJavaScriptのDateオブジェクトで現在の日時を取得しておく必要があります。

var todayDate = new Date();

1. コレクションとドキュメントの作成

まず、insertOne()メソッドを使ってサンプルドキュメントを含むコレクションを作成しましょう。

> db.demo644.insertOne({"ShippingDate":new ISODate("2018-04-19")});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e9c76896c954c74be91e6e6")
}
> db.demo644.insertOne({"ShippingDate":new ISODate("2019-01-10")});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e9c76966c954c74be91e6e7")
}

2. 登録済みドキュメントの確認

find()メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。

> db.demo644.find();

このクエリを実行すると、以下のような出力が得られます。

{ "_id" : ObjectId("5e9c76896c954c74be91e6e6"), "ShippingDate" : ISODate("2018-04-19T00:00:00Z") }
{ "_id" : ObjectId("5e9c76966c954c74be91e6e7"), "ShippingDate" : ISODate("2019-01-10T00:00:00Z") }

3. タイムスタンプを現在の日付に更新する

続いて、タイムスタンプを更新するためのクエリを見ていきましょう。ここでは、取得した現在日時に1時間を加算した値を、すべてのドキュメントの「ShippingDate」フィールドに設定しています。

ポイントは第3引数の{multi: true}です。このオプションを指定することで、検索条件に一致した全ドキュメントを一括して更新できます。

> var todayDate = new Date();
> todayDate .setHours(todayDate.getHours() + 1);
1587315898453
> db.demo644.update({}, {$set: {ShippingDate:todayDate}}, {multi: true});
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

4. 更新結果の確認

最後に、もう一度find()メソッドを実行して、更新後のドキュメントを確認してみましょう。

> db.demo644.find();

実行結果は以下のとおりです。

{ "_id" : ObjectId("5e9c76896c954c74be91e6e6"), "ShippingDate" : ISODate("2020-04-19T17:04:58.453Z") }
{ "_id" : ObjectId("5e9c76966c954c74be91e6e7"), "ShippingDate" : ISODate("2020-04-19T17:04:58.453Z") }

出力を見ると、両方のドキュメントの「ShippingDate」が同じ現在日時に更新されていることが確認できます。このように、update()メソッドとmultiオプションを組み合わせれば、複数ドキュメントの日付フィールドをまとめて現在の日付に変更することが可能です。

  1. JavaScriptで現在の日付と時刻を取得する方法

    JavaScriptで現在の日付と時刻を取得するには、Date()メソッドを使用します。Date()メソッドは呼び出し時点の日付と時刻を文字列として返します。特別なオブジェクトを生成することなく、そのまま呼び出せる手軽なメソッドです。サンプルコード以下のコードを実行すると、現在の日付と時刻を画面に表示できます。<html>    <head>       <title>JavaScript Date Method</title>    </head>  

  2. JavaScriptで現在の時刻を別のタイムゾーンの時刻に変更して表示する方法

    JavaScriptのDateオブジェクトは、端末(システム)に設定されている時刻をそのまま取得して現在の日付・時刻を表示します。そのため、JavaScript単体でシステム時刻そのものを書き換えることはできません。 しかし、UTC(協定世界時)との時差であるタイムゾーンオフセットを計算に組み込むことで、あたかも別の時刻が設定されたかのように表示することが可能です。以下では、シンガポール(GMT+8)の時刻を求めるサンプルコードを紹介します。 サンプルコード <!DOCTYPE html> <html>    <body>