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

MongoDBドキュメントの二重にネストされた配列から要素を削除するにはどうすればよいですか?


MongoDBドキュメントで二重にネストされた配列から要素を削除するには、$pull演算子を使用できます。

概念を理解するために、ドキュメントを使用してコレクションを作成しましょう。ドキュメントを使用してコレクションを作成するためのクエリは次のとおりです-

> db.removeElementFromDoublyNestedArrayDemo.insertOne(
   ... {
      ... "_id" : "1",
      ... "UserName" : "Larry",
      ... "UserDetails" : [
         ... {
            ... "UserCountryName" : "US",
            ... "UserLocation" : [
               ... {
                  ... "UserCityName" : "New York"
               ... },
               ... {
                  ... "UserZipCode" : "10001"
               ... }
            ... ]
         ... }
      ... ]
   ... }
... );
{ "acknowledged" : true, "insertedId" : "1" }
> db.removeElementFromDoublyNestedArrayDemo.insertOne(
   ... {
      ... "_id" : "2",
      ... "UserName" : "Mike",
      ... "UserDetails" : [
         ... {
            ... "UserCountryName" : "UK",
            ... "UserLocation" : [
               ... {
                  ... "UserCityName" : "Bangor"
               ... },
               ... {
                  ... "UserZipCode" : "20010"
               ... }
            ... ]
         ... }
      ... ]
   ... }
... );
{ "acknowledged" : true, "insertedId" : "2" }

find()メソッドを使用して、コレクションのすべてのドキュメントを表示します。クエリは次のとおりです-

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

以下は出力です-

{
   "_id" : "1",
   "UserName" : "Larry",
   "UserDetails" : [
      {
         "UserCountryName" : "US",
         "UserLocation" : [
            {
               "UserCityName" : "New York"
            },
            {
               "UserZipCode" : "10001"
            }
         ]
      }
   ]
}
{
   "_id" : "2",
   "UserName" : "Mike",
   "UserDetails" : [
      {
         "UserCountryName" : "UK",
         "UserLocation" : [
            {
               "UserCityName" : "Bangor"
            },
            {
               "UserZipCode" : "20010"
            }
         ]
      }
   ]
}

これは、MongoDBドキュメントの二重にネストされた配列から要素を削除するためのクエリです-

> db.removeElementFromDoublyNestedArrayDemo.update(
   ... { _id : "2" },
   ... {$pull : {"UserDetails.0.UserLocation" : {"UserZipCode":"20010"}}}
... );
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

find()を使用して、コレクションのドキュメントを確認しましょう。クエリは次のとおりです-

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

以下は出力です-

{
   "_id" : "1",
   "UserName" : "Larry",
   "UserDetails" : [
      {
         "UserCountryName" : "US",
         "UserLocation" : [
            {
               "UserCityName" : "New York"
            },
            {
               "UserZipCode" : "10001"
            }
         ]
      }
   ]
}
{
   "_id" : "2",
   "UserName" : "Mike",
   "UserDetails" : [
      {
         "UserCountryName" : "UK",
         "UserLocation" : [
            {
               "UserCityName" : "Bangor"
            }
         ]
      }
   ]
}

これで、フィールド「UserZipCode」:「20010」が二重にネストされた配列から削除されました。


  1. Swiftアレイから特定の要素を削除するにはどうすればよいですか?

    swiftの要素から特定のオブジェクトを削除するには、複数の方法を使用できます。例を使って、遊び場でこれを見てみましょう。 まず、文字列の配列を作成しましょう。 var arrayOfString = ["a","b","c","f"] 以下に示すように、次の方法でそれを行います。 方法1-配列のフィルターメソッドを使用します。 swiftの配列には、いくつかの条件に応じて配列オブジェクトをフィルタリングし、新しいオブジェクトの配列を返すfilterメソッドがあります。 let modifiedArray =

  2. C#配列から要素を削除/削除するにはどうすればよいですか?

    C#配列から要素を削除するには、ユーザーが要素を削除したい位置から要素をシフトします。 ここでは、最初に5つの要素があります- int[] arr = new int[5] {35, 50, 55, 77, 98}; ここで、2番目の位置にある要素を削除する必要があるとします。つまり、変数「pos =2」が設定されているため、指定された位置の後に要素がシフトされます- // Shifting elements for (i = pos-1; i < 4; i++) {    arr[i] = arr[i + 1]; } 次に、以下の完全なコードに示すように結果を