我有這個代碼:
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})
但它洗掉了整個字典。我怎樣才能只洗掉“懶惰”?
uj5u.com熱心網友回復:
您想使用$unset更新運算子,如下所示:
db.collection.update_many({
"be lazy": {"$exists": True}
},
{
"$unset": {
"be lazy": ""
}
})
蒙戈游樂場
uj5u.com熱心網友回復:
從資料庫獲取資料時可以使用投影階段不輸出某些欄位:
db.collection.find({},
{
"be lazy": 0
})
示例在這里
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/371149.html
標籤:Python 蟒蛇-3.x 数据库 MongoDB mongodb-查询
上一篇:如何創建具有默認值的物件陣列?
