在Python中删除多个MongoDB文档

Jos*_*rns 10 python mongodb nosql pymongo

问候,

我试图使用以下语法从MongoDB集合中删除多个文档.我不知道这是否正确,因为我发现它在互联网上的某个地方并且由于强制执行此声明的合法性而无法找到任何内容:

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

我希望上面的代码可以删除两个文件,包括'sku'值'100-00'或'200-00',但不幸的是这两个文件仍然存在于集合中.我也尝试将'sku'键及其值转换为Unicode,因为我知道它们存储在此编码中.正如您所知,我也启用了安全模式,确保服务器端没有任何异常情况发生.

任何帮助表示赞赏,谢谢!

Lex*_*Lex 12

您可以使用$或/ $ in运算符来完成此操作.

试试这个:

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

要么

pymongo_collection_object.remove({'sku': {'$in': ['100-00', '200-00']}}, safe=True)
Run Code Online (Sandbox Code Playgroud)

  • 啊,BTW,在pymongo(或Python本身)条件运算符($ in和$或本例中)需要用作字符串,否则返回SyntaxError.'$或'和'$ in'. (3认同)