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

条件なしでMongoDBの配列からすべての要素をプルする方法は?


これには$set演算子を使用できます。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.pullAllElementDemo.insertOne(
...    {
...       "StudentId":101,
...       "StudentDetails" : [
...          {
...
...             "StudentName": "Carol",
...             "StudentAge":21,
...             "StudentCountryName":"US"
...          },
...          {
...             "StudentName": "Chris",
...             "StudentAge":24,
...             "StudentCountryName":"AUS"
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccdd9c8685b30d09a7111e4")
}
> db.pullAllElementDemo.insertOne(
...    {
...       "StudentId":102,
...       "StudentDetails" : [
...          {
...
...             "StudentName": "Robert",
...             "StudentAge":27,
...             "StudentCountryName":"UK"
...          },
...          {
...             "StudentName": "David",
...             "StudentAge":23,
...             "StudentCountryName":"US"
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ccdd9f7685b30d09a7111e5")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

> db.pullAllElementDemo.find().pretty();

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

{
   "_id" : ObjectId("5ccdd9c8685b30d09a7111e4"),
   "StudentId" : 101,
   "StudentDetails" : [
      {
         "StudentName" : "Carol",
         "StudentAge" : 21,
         "StudentCountryName" : "US"
      },
      {
         "StudentName" : "Chris",
         "StudentAge" : 24,
         "StudentCountryName" : "AUS"
      }
   ]
}
{
   "_id" : ObjectId("5ccdd9f7685b30d09a7111e5"),
   "StudentId" : 102,
   "StudentDetails" : [
      {
         "StudentName" : "Robert",
         "StudentAge" : 27,
         "StudentCountryName" : "UK"
      },
      {
         "StudentName" : "David",
         "StudentAge" : 23,
         "StudentCountryName" : "US"
      }
   ]
}
>

以下は、MongoDBの配列からすべての要素を無条件でプルするためのクエリです。ここでは、$set-

を使用してStudentId102でStudentDetailsを削除しました。
> db.pullAllElementDemo.update( {StudentId:102}, { "$set": { "StudentDetails": [] }} );
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

上記のコレクションのすべてのドキュメントを表示して、配列から特定の要素が抽出されているかどうかを確認しましょう-

> db.pullAllElementDemo.find().pretty();

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

{
   "_id" : ObjectId("5ccdd9c8685b30d09a7111e4"),
   "StudentId" : 101,
   "StudentDetails" : [
      {
         "StudentName" : "Carol",
         "StudentAge" : 21,
         "StudentCountryName" : "US"
      },
      {
         "StudentName" : "Chris",
         "StudentAge" : 24,
         "StudentCountryName" : "AUS"
      }
   ]
}
{
   "_id" : ObjectId("5ccdd9f7685b30d09a7111e5"),
   "StudentId" : 102,
   "StudentDetails" : [ ]
}

  1. MongoDBのドキュメントから配列値を削除するにはどうすればよいですか?

    配列値を削除するには、MongoDBで$pullを使用します。 $ pull演算子は、既存の配列から、指定された条件に一致する1つまたは複数の値のすべてのインスタンスを削除します。 まず、ドキュメントを使用してコレクションを作成しましょう- > db.demo535.insertOne( ... { ... ...    "studentId" : "101", ...    "studentName" : "Chris", ...    &quo

  2. C#で配列から要素にアクセスする方法は?

    まず、配列を定義して初期化します- int[] p = new int[3] {99, 92, 95}; 次に、配列要素を表示します- for (j = 0; j < 3; j++ ) {    Console.WriteLine("Price of Product[{0}] = {1}", j, p[j]); } 任意の要素にアクセスするには、次のように必要な要素のインデックスを含めるだけです- p[2]; 上記は3番目の要素にアクセスするためのものです。 ここで、完全なコードを見てみましょう- 例 using System; name