仅在 MongoDB 中返回匹配的属性
Returning Matched Attribute Only in MongoDB
我有以下数据结构。数据库包含多个实例,所有实例都具有相同的基础级数据结构。
{
_id: ObjectId('5f4ceabe521de56d99738fd4'),
position: 11,
entropy: 0.4582005345072268,
supports: 61,
sequences: [
{
position: 11,
sequence: 'CLVFAQKIP',
count: 56,
conservation: 91.80327868852459,
motif_short: 'I',
motif_long: 'Index',
id: [
'ASU55526.1',
'ASU55528.1',
'QBM69729.1',
'QJR40421.1'
],
strain: [
'Influenza A virus A/Shandong-Zhifu/164/2016',
'Influenza A virus A/Shandong-Zhifu/1185/2016',
'Influenza A virus A/China/71517/2016',
'Influenza A virus A/Jiangxi/2017lgfh0026/2016'
],
country: [
'HA Hemagglutinin',
'HA Hemagglutinin',
'HA Hemagglutinin',
'HA Hemagglutinin'
],
host: [
'Influenza A virus A/Shandong-Zhifu/164/2016',
'Influenza A virus A/Shandong-Zhifu/1185/2016',
'Influenza A virus A/China/71517/2016',
'Influenza A virus A/Jiangxi/2017lgfh0026/2016'
]
},
{
position: 11,
sequence: 'CLVFAQKLP',
count: 4,
conservation: 6.557377049180328,
motif_short: 'Ma',
motif_long: 'Major',
id: [
'APQ31289.1',
'APQ31290.1',
'QJR40413.1',
'QJR40414.1'
],
strain: [
'Influenza A virus A/Xiamen/s200/2016',
'Influenza A virus A/Xiamen/s175/2016',
'Influenza A virus A/Jiangxi/2016lgfh1021/2016',
'Influenza A virus A/Jiangxi/2017lgfh0045/2016'
],
country: [
'HA Hemagglutinin',
'HA Hemagglutinin',
'HA Hemagglutinin',
'HA Hemagglutinin'
],
host: [
'Influenza A virus A/Xiamen/s200/2016',
'Influenza A virus A/Xiamen/s175/2016',
'Influenza A virus A/Jiangxi/2016lgfh1021/2016',
'Influenza A virus A/Jiangxi/2017lgfh0045/2016'
]
},
{
position: 11,
sequence: 'CLDFAQKIP',
count: 1,
conservation: 1.639344262295082,
motif_short: 'U',
motif_long: 'Unique',
id: [
'APQ31291.1'
],
strain: [
'Influenza A virus A/Xiamen/s228/2016'
],
country: [
'HA Hemagglutinin'
],
host: [
'Influenza A virus A/Xiamen/s228/2016'
]
}
],
variants: 3
}
我需要的是获取“motif_short”属性等于“I”的序列(不是整行或序列列表)。有时可能有两个或多个,但在这个特定示例中,只有一个“I”序列。
我正在使用 Python (PyMongo),经过多次尝试,我只剩下一半的解决方案,头上没有头发。
db.document.find({'sequences.motif_short': {"$eq": 'I'}}, {'sequences': 1, '_id': 0})
这显然为我提供了匹配的整个“序列”属性,这不是我要找的。
我对 Mongo 比较陌生,所以我猜这是一个相当简单的问题。请帮帮我。
我有以下数据结构。数据库包含多个实例,所有实例都具有相同的基础级数据结构。
{
_id: ObjectId('5f4ceabe521de56d99738fd4'),
position: 11,
entropy: 0.4582005345072268,
supports: 61,
sequences: [
{
position: 11,
sequence: 'CLVFAQKIP',
count: 56,
conservation: 91.80327868852459,
motif_short: 'I',
motif_long: 'Index',
id: [
'ASU55526.1',
'ASU55528.1',
'QBM69729.1',
'QJR40421.1'
],
strain: [
'Influenza A virus A/Shandong-Zhifu/164/2016',
'Influenza A virus A/Shandong-Zhifu/1185/2016',
'Influenza A virus A/China/71517/2016',
'Influenza A virus A/Jiangxi/2017lgfh0026/2016'
],
country: [
'HA Hemagglutinin',
'HA Hemagglutinin',
'HA Hemagglutinin',
'HA Hemagglutinin'
],
host: [
'Influenza A virus A/Shandong-Zhifu/164/2016',
'Influenza A virus A/Shandong-Zhifu/1185/2016',
'Influenza A virus A/China/71517/2016',
'Influenza A virus A/Jiangxi/2017lgfh0026/2016'
]
},
{
position: 11,
sequence: 'CLVFAQKLP',
count: 4,
conservation: 6.557377049180328,
motif_short: 'Ma',
motif_long: 'Major',
id: [
'APQ31289.1',
'APQ31290.1',
'QJR40413.1',
'QJR40414.1'
],
strain: [
'Influenza A virus A/Xiamen/s200/2016',
'Influenza A virus A/Xiamen/s175/2016',
'Influenza A virus A/Jiangxi/2016lgfh1021/2016',
'Influenza A virus A/Jiangxi/2017lgfh0045/2016'
],
country: [
'HA Hemagglutinin',
'HA Hemagglutinin',
'HA Hemagglutinin',
'HA Hemagglutinin'
],
host: [
'Influenza A virus A/Xiamen/s200/2016',
'Influenza A virus A/Xiamen/s175/2016',
'Influenza A virus A/Jiangxi/2016lgfh1021/2016',
'Influenza A virus A/Jiangxi/2017lgfh0045/2016'
]
},
{
position: 11,
sequence: 'CLDFAQKIP',
count: 1,
conservation: 1.639344262295082,
motif_short: 'U',
motif_long: 'Unique',
id: [
'APQ31291.1'
],
strain: [
'Influenza A virus A/Xiamen/s228/2016'
],
country: [
'HA Hemagglutinin'
],
host: [
'Influenza A virus A/Xiamen/s228/2016'
]
}
],
variants: 3
}
我需要的是获取“motif_short”属性等于“I”的序列(不是整行或序列列表)。有时可能有两个或多个,但在这个特定示例中,只有一个“I”序列。
我正在使用 Python (PyMongo),经过多次尝试,我只剩下一半的解决方案,头上没有头发。
db.document.find({'sequences.motif_short': {"$eq": 'I'}}, {'sequences': 1, '_id': 0})
这显然为我提供了匹配的整个“序列”属性,这不是我要找的。
我对 Mongo 比较陌生,所以我猜这是一个相当简单的问题。请帮帮我。