代码之家  ›  专栏  ›  技术社区  ›  Forepick

如何删除PyMongo中的N个文档?

  •  0
  • Forepick  · 技术社区  · 6 年前

    我正在努力 collection.remove({}) N使用PyMongo的文档。 在mongodb上这样做 this ,PyMongo的等价物是什么?

    谢谢

    1 回复  |  直到 6 年前
        1
  •  2
  •   Oluwafemi Sule    6 年前

    要删除集合中的N个文档,可以执行以下操作

    1. A. bulk_write 属于 DeleteOne 集合上的操作。 e、 g。

      In [1]: from pymongo import MongoClient
              from pymongo.operations import DeleteOne
      
      
              client = MongoClient()
              db = client.test
              N = 2 
      
              result = db.test.bulk_write([DeleteOne({})] * N)
      
      In [2]: print(result.deleted_count)
      2
      
    2. A. delete_many 使用前一个ID中所有ID的筛选器 find e、 g。

      def delete_n(collection, n):
          ndoc = collection.find({}, ('_id',), limit=n)
          selector = {'_id': {'$in': [doc['_id'] for doc in ndoc]}}
          return collection.delete_many(selector)
      
      result = delete_n(db.test, 2)
      print(result.deleted_count)