Python 如何将元素推入MongoDB数据库中对象内的数组?
我是MongoDB的新手,我正在尝试找出如何将元素推入对象内部的数组中。以下是数据库:Python 如何将元素推入MongoDB数据库中对象内的数组?,python,database,mongodb,mongodb-query,pymongo,Python,Database,Mongodb,Mongodb Query,Pymongo,我是MongoDB的新手,我正在尝试找出如何将元素推入对象内部的数组中。以下是数据库: { "_id": { "$oid": "605cee2f08588cb6263c33a4" }, "userID": "9346", "firstName": "James", "sessionsLog&q
{
"_id": {
"$oid": "605cee2f08588cb6263c33a4"
},
"userID": "9346",
"firstName": "James",
"sessionsLog": {
"date": [],
"timestamp": [],
"duration": []
}
},
{
"_id": {
"$oid": "605cee825ef711180adbc141"
},
"userID": "4778",
"firstName": "Rob",
"sessionsLog": {
"date": [],
"timestamp": [],
"duration": []
}
}
我想在Rob的“日期”数组中加入一个日期:2021年3月30日
将此新日期推入日期数组的操作是什么
这就是我尝试过的:
import pymongo
myclient = pymongo.MongoClient("...")
mydb= myclient["myDatabase"]
users = mydb["Users"]
userID = '4778'
dateToPush = '3/30/2021'
allUsers = users.find({}, {'_id': 1, 'userID': 1, 'sessionsLog': 1})
for u in allUsers:
if u.get('userID') == userID:
users.update_one(
{'userID': u.get('userID')},
{'$push': {'sessionsLog'['date']: dateToPush}}
)
对查询中的嵌套对象使用
改变
'$push': {'sessionsLog'['date']: dateToPush}
到
演示-
对于3个字段,最好使用一个带有日志项的数组,而不是3个数组。工作非常完美,正是我所需要的。谢谢。
'$push': {'sessionsLog.date': dateToPush}
db.collection.update({
"userID": "9346"
},
{
$push: {
"sessionsLog.date": { a: 1, b: 2 }
}
})