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

グループアキュムレータ演算子$firstをシステム変数$$ROOTに適用して、ルートドキュメントへの参照を返しますか?


アキュムレータは、ドキュメントがパイプラインを進むときに状態を維持する演算子です。

$ ROOTは、現在集約パイプラインステージで処理されているルートドキュメント、つまり最上位のドキュメントを参照します。

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

> db.demo582.insertOne({FirstName:"Chris",Age:21,createDate:new ISODate("2020-01-10")});{
   "acknowledged" : true, "insertedId" : ObjectId("5e91ce41fd2d90c177b5bcbd")
}
> db.demo582.insertOne({FirstName:"Chris",Age:21,createDate:new ISODate("2020-04-21")});{
   "acknowledged" : true, "insertedId" : ObjectId("5e91ce4ffd2d90c177b5bcbe")
}
> db.demo582.insertOne({FirstName:"Chris",Age:22,createDate:new ISODate("2020-02-11")});{
   "acknowledged" : true, "insertedId" : ObjectId("5e91ce59fd2d90c177b5bcbf")
}
> db.demo582.insertOne({FirstName:"Chris",Age:22,createDate:new ISODate("2020-01-12")});{
   "acknowledged" : true, "insertedId" : ObjectId("5e91ce6efd2d90c177b5bcc0")
}

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

> db.demo582.find();

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

{ "_id" : ObjectId("5e91ce41fd2d90c177b5bcbd"), "FirstName" : "Chris", "Age" : 21, "createDate" : ISODate("2020-01-10T00:00:00Z") }
{ "_id" : ObjectId("5e91ce4ffd2d90c177b5bcbe"), "FirstName" : "Chris", "Age" : 21, "createDate" : ISODate("2020-04-21T00:00:00Z") }
{ "_id" : ObjectId("5e91ce59fd2d90c177b5bcbf"), "FirstName" : "Chris", "Age" : 22, "createDate" : ISODate("2020-02-11T00:00:00Z") }
{ "_id" : ObjectId("5e91ce6efd2d90c177b5bcc0"), "FirstName" : "Chris", "Age" : 22, "createDate" : ISODate("2020-01-12T00:00:00Z") }

以下は、グループアキュムレータ演算子を適用するためのクエリです-

> db.demo582.aggregate([
...    {
...       "$group": {
...          "_id": "$FirstName",
...          "MaximumDate": {
...             "$max": "$createDate"
...          },
...          "count": {
...             "$sum": 1
...          },
...          "details": {
...             "$first": "$$ROOT"
...          }
...       }
...    },
...    {
...       "$project": {
...          "MaximumDate": 1,
...          "count": 1,
...          "details": {
...             "_id": "$_id",
...             "FirstName": "$details.FirstName",
...             "Age" : "$details.Age",
...          }
...       }
...    }
... ])

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

{ "_id" : "Chris", "MaximumDate" : ISODate("2020-04-21T00:00:00Z"), "count" : 4, "details" :
   { "_id" : "Chris", "FirstName" : "Chris", "Age" : 21 }
}

  1. JavaScriptで数値の立方根を見つける方法は?

    数学オブジェクトの使用 javascriptでは、あらゆる種類の操作を実行できます。 Math.cbrt() は、数値の立方根を見つけるために特に使用される方法です。パラメータとして数値を受け取り、その立方根を返します。 構文 Math.cbrt(64); パラメータとして数値を受け取り、その立方根値を出力として返します。 例-1 次の例では、正の値のみの立方根が検出され、出力に表示されています。 <html> <body> <script>    document.write(Math.cbrt(64));   &nbs

  2. JavaScriptを使用して<text>の値を変数に抽出しますか?

    の値を抽出するには、-を使用します document.getElementById(“yourTextIdValue”).textContent 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initialscale= 1.0"> <tit