deleteMany/remove过程在MongoDB中是如何工作的

deleteMany/remove过程在MongoDB中是如何工作的,mongodb,Mongodb,删除多个/删除的过程如何工作?它是否找到所有符合条件的文档,存储在内存中并按顺序删除 db.collection.deleteMany({condition}) db.collection.remove({condition}) 它的工作根据您指定的条件。它会删除一个或多个文档(如果存在)。除非更熟悉情况的服务器工程师给出答复,否则我希望删除操作如下: 使用提供的条件执行查找查询 当查询找到每个文档时,它将被删除 指定光标可以多次返回文档。这对删除没有任何意义,因为删除已经删除的文档是不允许的

删除多个/删除的过程如何工作?它是否找到所有符合条件的文档,存储在内存中并按顺序删除

db.collection.deleteMany({condition})
db.collection.remove({condition})

它的工作根据您指定的条件。它会删除一个或多个文档(如果存在)。

除非更熟悉情况的服务器工程师给出答复,否则我希望删除操作如下:

  • 使用提供的条件执行查找查询
  • 当查询找到每个文档时,它将被删除
  • 指定光标可以多次返回文档。这对删除没有任何意义,因为删除已经删除的文档是不允许的

    当在事务之外执行删除时,我希望:

    • 如果文档最终被数据库物理覆盖和移动,则由另一个符合删除条件的查询同时修改的文档可能不会被删除
    • 如果有文档与符合删除条件的删除同时插入,则删除查询可能会删除部分、全部或全部文档

    我希望在交易中不可能出现上述第一种情况,而在第二种情况下,所有新插入的文档都将被删除,或者不会被删除,但我不会在未经测试的情况下声明这一点,因为我在已发布的文档中没有看到此类声明。

    感谢您的评论,但我想知道mongodb实际上是如何处理delete命令的,而不是您所说的结果存储在内存中有什么意义?删除它不需要文档数据。