sql >> データベース >  >> NoSQL >> MongoDB

要素の位置に基づいてmongoDBの配列要素を削除する

    ドキュメントから:

    { $pull : { field : {$gt: 3} } } removes array elements greater than 3
    

    だから私はあなたが今のところこのような何かをすることができると思います:

    { $pull : { field : {$gt: 3, $lt: 5} } } // shoud remove elemet in 4 position 
    

    または、位置演算子 を使用して更新してみてください 、私は次のようなものだと思います:

      { $pull : "field.4" } 
    
      { $pull : {"field.$": 4}}
    

    今はテストできないので、これは単なる提案です。

    更新:

    1つのステップで正しく理解できないようです(jiraのバグ があります )

    ただし、未設定の要素を所定の位置に使用すると、要素をnull値でプルして削除できます:

    {$unset : {"array.4" : 1 }}
    {$pull : {"array" : null}}
    


    1. C#ドライバーを使用してMongoDBで複数のドキュメントを更新およびアップサートする方法

    2. MongoSecurityExceptionをキャッチするにはどうすればよいですか?

    3. nodejs mongodbドライバーは、アイドル状態のときに接続をドロップします

    4. モンゴはあまりにも多くの接続を開きます