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

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


$unsetおよび$pull演算子を更新とともに使用して、配列のn番目の要素を削除できます。

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

> db.getNThElementDemo.insertOne({"UserName":"John","UserAge":23,"ListOfFriends":["Carol","Sam","Mike","Bob"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c94ee7516f542d757e2b43e")
}
> db.getNThElementDemo.insertOne({"UserName":"David","UserAge":21,"ListOfFriends":["Chris","Robert"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c94eeaa16f542d757e2b43f")
}

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

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

以下は出力です-

{
   "_id" : ObjectId("5c94ee7516f542d757e2b43e"),
   "UserName" : "John",
   "UserAge" : 23,
   "ListOfFriends" : [
      "Carol",
      "Sam",
      "Mike",
      "Bob"
   ]
}
{
   "_id" : ObjectId("5c94eeaa16f542d757e2b43f"),
   "UserName" : "David",
   "UserAge" : 21,
   "ListOfFriends" : [
      "Chris",
      "Robert"
   ]
}

配列のn番目の要素を削除するクエリは次のとおりです-

> db.getNThElementDemo.update({}, {$unset : {"ListOfFriends.2" : 1 }});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.getNThElementDemo.update({}, {$pull : {"ListOfFriends" : null}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>

これで、配列からn番目の要素が削除されたことを確認できます。

クエリは次のとおりです-

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

以下は出力です-

{
   "_id" : ObjectId("5c94ee7516f542d757e2b43e"),
   "UserName" : "John",
   "UserAge" : 23,
   "ListOfFriends" : [
      "Carol",
      "Sam",
      "Bob"
   ]
}
{
   "_id" : ObjectId("5c94eeaa16f542d757e2b43f"),
   "UserName" : "David",
   "UserAge" : 21,
   "ListOfFriends" : [
      "Chris",
      "Robert"
   ]
}

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

    要素を削除するには、MongoDBで$ pullを更新して、使用します。 $ pull演算子は、既存の配列から、指定された条件に一致する1つまたは複数の値のすべてのインスタンスを削除します。 まず、ドキュメントを使用してコレクションを作成しましょう- db.demo541.insertOne({"software":{"services":["gmail","facebook","yahoo"]}});{    "acknowledged" : true

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