如何从mongoDB中嵌套在文档中的文档数组中提取某些元素?

2024-06-17 10:26:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个mongodb文件。我正在使用pymongo,我想将所有训练名称字段提取为字典,然后使用它在网页上以列表的形式查看它们。你知道吗

{
"_id" : ObjectId("5b28bfed9ebcea299d08976e"),
"username" : "cybr1998@gmail.com",
"workouts" : [
    {
        "workout-name" : "Treadmill",
        "workout-duration" : "1",
        "workout-frequency" : "Everyday",
        "_id" : "td"
    },
    {
        "workout-name" : "Squats",
        "workout-duration" : "1",
        "workout-frequency" : "Everyday",
        "_id" : "sq"
    },
    {
        "workout-name" : "Running",
        "workout-duration" : "0.5",
        "workout-frequency" : "Everyday",
        "_id" : "rn"
    }
    ]
}

我想得到所有训练名称,结果如下:

{"Treadmill", "Pushups", "Squats"}

我试着提出这个问题:

workouts.find_one({"username":session['username']}, {"workouts.workout-name" : , "_id" : 0})

我得到了这个结果:

{'workouts': [{'workout-name': 'Treadmill'}, {'workout-name': 'Squats'}, {'workout-name': 'Running'}]}

如何改进查询以获得所需的结果?你知道吗


Tags: 文件name名称idmongodbusernamerunningduration
1条回答
网友
1楼 · 发布于 2024-06-17 10:26:59

此代码似乎有效:

list_workouts = []
available_workouts = workouts.find_one({"username": session['username']}, {"workouts.workout-name": 1, "_id": 0})
list_len = len(available_workouts['workouts'])
for i in range(0, list_len):
    list_workouts.append(available_workouts['workouts'][i]['workout-name'])

相关问题 更多 >