10

こんにちは、

次の構文を使用して、MongoDBコレクションから複数のドキュメントを削除しようとしています。私はインターネットのどこかでそれを見つけ、この声明の正当性を強制して以来何も見つけることができなかったので、これが正しいかどうかはわかりません:

pymongo_collection_object.remove(
    [
        {
            'sku': '100-00'
        },
        {
            'sku': '200-00'
        }
    ]
, safe=True)

上記のコードは、「100-00」または「200-00」の「sku」値を含む両方のドキュメントを削除すると予想されますが、残念ながら、両方のドキュメントはコレクション内にまだ存在しています。また、「sku」キーとその値の両方をUnicodeにキャストしてみました。これは、これらがこのエンコーディングで保存されていることがわかっているためです。お分かりのように、サーバー側でアウトオブラインが発生しないようにセーフモードも有効にしています。

どんな助けでもありがたいです、ありがとう!

4

1 に答える 1

12

$または/$in演算子を使用してこれを行うことができます。

これを試して:

pymongo_collection_object.remove({'$or': [{'sku': '100-00'}, {'sku': '200-00'}]}, safe=True)

また

pymongo_collection_object.remove({'sku': {'$in': ['100-00', '200-00']}}, safe=True)
于 2010-12-28T22:14:36.343 に答える