我有一个包含以下文档的集合:
{
"_id" : ObjectId("5a8ec4620cd3c2a4062548ec"),
"chromosome" : 1,
"start" : "1",
"reference" : "A",
"alternative" : "C",
"populationFrequencies" : [
{
"study" : "dbnlvar",
"population" : "GBL",
"value" : 0.1
},
{
"study" : "genomad",
"population" : "AF",
"value" : 0.2
},
{
"study" : "genomad",
"population" : "AFR",
"value" : 0.3
},
{
"study" : "genomad",
"population" : "AMR",
"value" : 0.4
},
{
"study" : "genomad",
"population" : "ASJ",
"value" : 0.2
}
{
"study" : "1kg",
"population" : "GBL",
"value" : 0.1
},
{
"study" : "1kg",
"population" : "EUR",
"value" : 0.15
},
{
"study" : "1kg",
"population" : "SAS",
"value" : 0.10
},
{
"study" : "1kg",
"population" : "AMR",
"value" : 0.25
},
{
"study" : "1kg",
"population" : "EAS",
"value" : 0.7
}
]
}
使用此标准:
我想在集合中找出符合条件1和2的人口人口数组中的文档排序的文档,按字段“值”从最低到最高,第二最低的值大于0.10
因此,为澄清起见,在以下示例中,将显示该文档。
是否可以在mongodb shell中将其表示为查询?谁能帮我?非常感谢您的宝贵时间。
您可以在3.6中尝试以下汇总
db.col.aggregate([
{"$match":{
"populationFrequencies":{
"$elemMatch":{
"study":"1kg","population":{"$in":["EUR","SAS","AMR"]}
}
}
}},
{"$unwind":"$populationFrequencies"},
{"$sort":{"populationFrequencies.value":1}},
{"$group":{"_id":"$_id","populationFrequencies":{"$push":"$populationFrequencies"}}},
{"$match":{"$expr":{"$gt":[{"$arrayElemAt":["$populationFrequencies.value",1]},0.10]}}}
])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句