Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pyMongo删除/修改找到的文档_Python_Mongodb_Pymongo - Fatal编程技术网

Python pyMongo删除/修改找到的文档

Python pyMongo删除/修改找到的文档,python,mongodb,pymongo,Python,Mongodb,Pymongo,编写一个查找文档的函数,如果“delete==True”,则删除它们 是否有办法删除“.find”操作产生的文档 def findOrphanSensors(self, delete = False): deviceList = sorted(self._dbC.devicesCol.find({}).distinct('_id')) print(deviceList) orphanSensors = self._dbC.sensorsCol.f

编写一个查找文档的函数,如果“delete==True”,则删除它们

是否有办法删除“.find”操作产生的文档

    def findOrphanSensors(self, delete = False):
       deviceList = sorted(self._dbC.devicesCol.find({}).distinct('_id'))
       print(deviceList)
       orphanSensors = self._dbC.sensorsCol.find({'parentDeviceID':{'$nin':deviceList}})
       print(orphanSensors.count())
       if delete == True:
          orphanSensors.remove() ???
我可以做到:

    if delete == True:
        self._dbC.sensorsCol.deleteMany({'parentDeviceID': {'$nin': deviceList}})

但是我认为如果我已经在“孤儿传感器”中有了搜索结果,那么就没有必要重新进行搜索…?

是的,你可以。
查找的结果可以迭代

孤立传感器中孤立传感器的
:
self._dbC.sensorsCol.deleteOne(孤立[''id'])
但是,这可能不如调用
delete\u many()
有效。如果在删除孤立项之前不需要打印它们的数量,则可以按如下方式重新排列代码:

def findOrphanSensors(self,delete=False): deviceList=已排序(self.\u dbC.devicesCol.distinct(“\u id”)) 打印(设备列表) 孤立过滤器={'parentDeviceID':{'nin':设备列表} 如果删除: 结果=self.\u dbC.sensorsCol.delete\u many(孤立过滤器) 打印(结果已删除\u计数) 其他: 结果=self.\u dbC.sensorsCol.find(孤立过滤器) 打印(result.count())