0
我想學習一些基本的MongoDB,我很困惑如何使用$ push將更多的數據添加到我的文檔。下面是我的代碼:MongoDB推pymongo的建議
from pymongo import MongoClient
client = MongoClient()
db = client.classes
collection = db.StudentsExample
student1 = {
'name': 'adam',
'year': 'sophomore',
'age': 19,
'class':[
{
'className': 'cse131',
'time': '2:30',
'finalGrade': 'A'
},
{
'className': 'cse240',
'time': '9:30',
'finalGrade': 'B'
}
]
}
student2 = {
'name': 'bob',
'year': 'sophomore',
'age': 19,
'class':[
{
'className': 'cse131',
'time': '2:30',
'finalGrade': 'A'
},
{
'className': 'cse240',
'time': '9:30',
'finalGrade': 'B'
}
]
}
num = int(input("How many more classes?: "))
for x in range(0, num):
classNameInput = str(input("Class name?: "))
timeInput = str(input("Time of class?: "))
finalGradeInput = str(input("Final grade in class?: "))
db.StudentsExample.update(
{'name': "adam"},
{'$push': {'class.className': classNameInput, 'class.time': timeInput, 'class.finalGrade':finalGradeInput}}
)
cursor = collection.find({})
for document in cursor: print(document)
我認爲這樣做是在student1的類文檔中添加另一個文檔。因此,舉例來說,如果用戶有輸入提示時: 類名稱:生物 時間:2:30 最終成績:C
的結果將是:
student1 = {
'name': 'adam',
'year': 'sophomore',
'age': 19,
'class':[
{
'className': 'cse131',
'time': '2:30',
'finalGrade': 'A'
},
{
'className': 'cse240',
'time': '9:30',
'finalGrade': 'B'
},
{
'className': 'bio
'time': 2:30
'finalGrade': 'C'
}
]
}
student2 = {
'name': 'bob',
'year': 'sophomore',
'age': 19,
'class':[
{
'className': 'cse131',
'time': '2:30',
'finalGrade': 'A'
},
{
'className': 'cse240',
'time': '9:30',
'finalGrade': 'B'
}
]
}
我已經插入兩這些元素放入數據庫中,所以即使插入方法不在此代碼中,它們仍在那裏。
但是,它不工作 - 它給出了錯誤聲明「不能使用部件(類class.time)來遍歷元素({class:[{finalGrade:」A「,time:」2: 30「,className:」cse131「},{finalGrade:」B「,時間:」9:30「,className:」cse240「}]})
任何人都可以告訴我我做錯了什麼?我無法找到如何使用推與Python明確的指示..謝謝