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

MongoDBで配列要素を削除するにはどうすればよいですか?


MongoDBの配列要素を削除するには、$pullおよび$in演算子を使用できます。構文は次のとおりです。

db.yourCollectionName.update({},
   {$pull:{yourFirstArrayName:{$in:["yourValue"]},yourSecondArrayName:"yourValue"}},
   {multi:true}
);

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

>db.removeArrayElement.insertOne({"StudentName":"Larry","StudentCoreSubject":["MongoD
B","MySQL","SQL Server","Java"],"StudentFavouriteTeacher":["John","Marry","Carol"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6ec9c46fd07954a4890688")
}

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

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

出力は次のとおりです。

{
   "_id" : ObjectId("5c6ec9c46fd07954a4890688"),
   "StudentName" : "Larry",
   "StudentCoreSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server",
      "Java"
   ],
   "StudentFavouriteTeacher" : [
      "John",
      "Marry",
      "Carol"
   ]
}

MongoDBで配列要素を削除するためのクエリは次のとおりです。

> db.removeArrayElement.update({},
... {$pull:{StudentCoreSubject:{$in:["Java"]},StudentFavouriteTeacher:"Marry"}},
... {multi:true}
... );
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

上記の最初の配列(「StudentCoreSubject」)の「Java」要素と、2番目の配列(「StudentFavouriteTeacher」)の2番目の値「Marry」要素があります。

コレクションのドキュメントをもう一度表示して、2つの要素が削除されているかどうかを確認しましょう。クエリは次のとおりです。

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

出力は次のとおりです。

{
   "_id" : ObjectId("5c6ec9c46fd07954a4890688"),
   "StudentName" : "Larry",
   "StudentCoreSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server"
   ],
   "StudentFavouriteTeacher" : [
      "John",
      "Carol"
   ]
}

上記のサンプル出力を見ると、最初の配列(「StudentCoreSubject」)には「Java」要素がなく、2番目の配列(「StudentFavouriteTeacher」)には「Marry」要素がありません。そのため、コレクションからそれらを正常に削除しました。


  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]; } 次に、以下の完全なコードに示すように結果を