【发布时间】:2021-11-30 11:37:55
【问题描述】:
我有这个代码:
from admin import *
grab_data = tasks_collection.find()
class Habits:
def __init__(self):
self.default = False
self.habits = {}
def add_habit(self, habit_name, habit_difficulty=0):
self.habits[habit_name] = [self.default, habit_difficulty]
def remove_habit(self, habit_name):
del self.habits[habit_name]
def plus_habit(self):
pass
def minus_habit(self):
pass
def add_data(self):
habits_collection.insert_one(self.habits)
class Tasks:
def __init__(self):
self.default = False
self.tasks = {}
def add_task(self, task_name, task_difficulty=0):
if task_name not in self.tasks:
self.tasks[task_name] = [self.default, task_difficulty]
else:
print(f"Task '{task_name}' already exists.")
def show_task(self):
return self.tasks
def remove_task(self, task_name):
del self.tasks[task_name]
def add_data(self):
tasks_collection.insert_one(self.tasks)
task = Tasks()
task.add_task("clean room")
task.add_task("study")
task.add_task("study")
task.add_task("be lazy")
task.add_data()
这基本上用于创建一个包含任务的 ToDo 字典,然后将它们添加到我的数据库中。 到现在为止还挺好。但是如何从数据库中删除单个任务? 当我从数据库中读取数据时,我得到了这个:
{'_id': ObjectId('61a60bbd13d0ccf4e9bb300d'), 'clean room': [False, 0], 'study': [False, 0], 'be lazy': [False, 0]}
我试图像这样删除它:
for data in grab_data:
for key, value in data.items():
if key == "be lazy":
tasks_collection.delete_one({key: value})
但它会删除整个字典。 我怎样才能只删除“偷懒”?
【问题讨论】:
标签: python python-3.x database mongodb mongodb-query