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

MongoDBを使用して生年月日レコードを年齢に変換する方法


ドキュメントを使用してコレクションを作成しましょう-

> db.demo754.insertOne({"DateOfBirth":new Date("2000-05-03")});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eae9b2da930c785c834e56f")
}
> db.demo754.insertOne({"DateOfBirth":new Date("2010-01-21")});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eae9b34a930c785c834e570")
}
> db.demo754.insertOne({"DateOfBirth":new Date("2018-05-03")});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eae9b3da930c785c834e571")
}

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo754.find();

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5eae9b2da930c785c834e56f"), "DateOfBirth" : ISODate("2000-05-03T00:00:00Z") }
{ "_id" : ObjectId("5eae9b34a930c785c834e570"), "DateOfBirth" : ISODate("2010-01-21T00:00:00Z") }
{ "_id" : ObjectId("5eae9b3da930c785c834e571"), "DateOfBirth" : ISODate("2018-05-03T00:00:00Z") }

以下は、生年月日を年齢に変換するためのクエリです-

> db.demo754.aggregate( [ {
...    $project: {
...       date:"$DateOfBirth",
...          StudentAge: {
...             $divide: [{$subtract: [ new Date(), "$DateOfBirth" ] },
...             (365 * 24*60*60*1000)]
...          }
...       }
... } ] )

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5eae9b2da930c785c834e56f"), "date" : ISODate("2000-05-03T00:00:00Z"), "StudentAge" : 20.014896543093606 }
{ "_id" : ObjectId("5eae9b34a930c785c834e570"), "date" : ISODate("2010-01-21T00:00:00Z"), "StudentAge" : 10.288869145833333 }
{ "_id" : ObjectId("5eae9b3da930c785c834e571"), "date" : ISODate("2018-05-03T00:00:00Z"), "StudentAge" : 2.003937638984018 }

  1. MongoDBは、配列を持つ1つのレコードを新しいコレクションの複数のレコードに変換しますか?

    このために、aggregate()および$unwindとともに$outを使用できます。ドキュメントを使用してコレクションを作成しましょう- > db.demo757.insertOne( ...    { ...       "id": 101, ...       "Name": ["John", "Bob", "Chris"] ...    } ... ); {    

  2. MySQLで日付レコードを持つテーブルの日付を変更するにはどうすればよいですか?

    日付を変更して年を追加する必要があるとします。このためには、DATE_ADD()とともにUPDATEコマンドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1984    (    ShippingDate date    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1984 values('2014