背景
我以以下格式存储数据
{
"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'})
如果有人可以帮助我编写一个查询,我可以在其中获取指定 marker
和 player_id
的多个标记值,我将非常感激
最佳答案
您只需执行以下操作
col.find({“player_id”: “VU3R5HNTAGMK”}, {“markers.” + m: 1 for m in [“ BICF2P964092", “BICF2G630653981”]})
关于python - 从文档中选择多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67992277/