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

埋め込まれたドキュメントの配列を親に移動し、集計パイプラインを使用してキー/値を変更するにはどうすればよいですか?


MongoDBアグリゲーションで$replaceRootを使用します。 $ replaceRootは、入力ドキュメントを指定されたドキュメントに置き換えます。この操作は、_idフィールドを含む、入力ドキュメント内の既存のすべてのフィールドを置き換えます。ドキュメントを使用してコレクションを作成しましょう-

> db.demo733.insertOne(
...    {
...       "SubjectDetails":
...       [
...          {
...             SubjectName:"MongoDB",
...             "Marks":85
...          },
...          {
...             SubjectName:"MySQL",
...             "Marks":90
...          },
...          {
...             SubjectName:"PL/SQL",
...             "Marks":98
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eac6e6156e85a39df5f6342")
}

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

> db.demo733.find();

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

{ "_id" : ObjectId("5eac6e6156e85a39df5f6342"), "SubjectDetails" : [ { "SubjectName" : "MongoDB", "Marks" : 85 }, { "SubjectName" : "MySQL", "Marks" : 90 }, { "SubjectName" : "PL/SQL", "Marks" : 98 } ] }

以下は、埋め込まれたドキュメントの配列を親に移動し、集計パイプラインを使用してキー/値を変更するためのクエリです-

> db.demo733.aggregate([
...    {
...       $replaceRoot: {
...          newRoot: {
...             $mergeObjects: [
..               . { _id: "$_id" },
...                { $arrayToObject: { $map: { input: "$SubjectDetails", in: [ "$$this.SubjectName", "$$this.Marks" ] } } }
...             ]
...          }
...       }
...    }
... ]).pretty()

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

{
   "_id" : ObjectId("5eac6e6156e85a39df5f6342"),
   "MongoDB" : 85,
   "MySQL" : 90,
   "PL/SQL" : 98
}

  1. Bashの配列変数、使用方法、例

    以前にBashでの変数の使用について説明しました。この記事では、Bashの配列について説明します。 変数といくつかの使用例を提供します。 アレイとは 配列は、複数の値を保持できる変数の一種です。これは、ループして個々の値に対して操作を実行できる値のリストです。 たとえば、ファイルのリストに対してアクションを実行したい場合があります。そのリストを配列として保存することで、そのリスト内のファイル名をループして、それぞれに対してアクションを実行できます。 配列にはインデックスが付けられ、配列内の各アイテムの位置は 0で始まる数字で表されます。 。 Bash配列では、配列要素に連続してインデッ

  2. ネットワーク セキュリティ キーを見つけて変更するには?

    Wi-Fi パスワードは、専門用語ではネットワーク セキュリティ キーと呼ばれます。ネットワーク接続を作成するとき、それはあなたが提供する組み合わせです。ネットワーク セキュリティ キーは、Wi-Fi ホットスポットへの不正アクセスを防止する役割を果たします。同じネットワークに接続されたデバイスは相互に通信できます。その結果、なじみのないデバイスや悪意のあるデバイスがファイルやオンライン アクティビティにアクセスする可能性があります。その結果、セキュリティ キーはネットワークの安全性に影響を与えます。たとえば、WEP セキュリティ ツールを使用すると、ネットワークはハッカー、悪用、盗聴に対して