python - 从文档中选择多个值

标签 python mongodb mongodb-query pymongo

背景

我以以下格式存储数据

{
    "player_id": "VU3R5HNTAGMK",
    "markers": {
        "BICF2P964092": "GC",
        "BICF2G630653981": "CG",
        "BICF2P483996": "CT",
        "BICF2S23452916": "CG",
        "chr26_19147949": "TC",
    }
}

您可以想象我为多个玩家存储了数据,每个玩家都有一个唯一的player_id,并且它们都有不同数量的标记和不同的标记值。

在上述情况下,标记为 BICF2P964092,其标记值为 GC

我正在尝试以各种方式查询我的 mongo 数据库。一种明显的方法是使用player_id。为此,我执行以下操作 col.find({"player_id": "VU3R5HNTAGMK"})

我想做的另一件事是也许我只想知道特定标记对于特定玩家的值(value)。因此,我可以执行以下操作 col.find({"player_id": "VU3R5HNTAGMK"}, {'markers.BICF2P964092'})

问题

我还希望能够获取特定玩家的多个标记的值,但我无法这样做。我尝试了以下方法,但没有成功。

col.find({"player_id": "VU3R5HNTAGMK"},{'markers': {'$in': ["BICF2P964092", "chr26_19147949"]}})

col.find({"player_id": "VU3R5HNTAGMK"}, {'markers.BICF2P964092'}, {'markers.chr26_19147949'})

如果有人可以帮助我编写一个查询,我可以在其中获取指定 markerplayer_id 的多个标记值,我将非常感激

最佳答案

您只需执行以下操作

col.find({“player_id”: “VU3R5HNTAGMK”}, {“markers.” + m: 1 for m in [“ BICF2P964092", “BICF2G630653981”]})

关于python - 从文档中选择多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67992277/

相关文章:

mongodb - 如何在更新或聚合中生成唯一的 ObjectId?

node.js - Mongodb根据属性将结果拆分为数组

node.js - 蒙戈 : aggregate $geoNear and $text no results

python - 更有效地模拟 2 个骰子 - Python

python - 如何使用字符串为我的 DataFrame 设置变量名称?

mongodb - 迭代具有有限批量大小的 Mongo Cursor

mysql - MONGODB Mongoimport 可能加速?

python - 无法在 Mac OS X 上安装 matplotlib

python - 如何在 Python 中使用猴子修补来替换特定参数?

python - 按内部数组的特定元素分组