[英]Javascript find a string in a multidimensional array and return that array?
[英]MongoDB: How to find (and return) elements in a multidimensional array?
这是JSON结构,请注意,最后一个条目中有2个多维数组,一个用于chr 10,一个用于chr 12:
{
"_id": "9oFvJYeG9wpdBYunu",
"segments": [
{
"chr": "7",
"start": "140422294",
"end": "155048283",
"length": "29.1",
"snps": "1666"
}
]
},
{
"_id": "HK4WXc5mR6fyesjpP",
"segments": [
{
"chr": "10",
"start": "83865742",
"end": "90981118",
"length": "6.3",
"snps": "1380"
}
]
},
{
"_id": "3N4Z2dtX5PiuqmCFv",
"segments": [
{
"chr": "10",
"start": "83865742",
"end": "90981118",
"length": "6.3",
"snps": "1380"
},
{
"chr": "12",
"start": "32853998",
"end": "44834540",
"length": "5.1",
"snps": "1623"
}
]
}
如何确定chr = 10的所有细分? 我想获得有关chr = 10的元素的详细信息。我想要的是chr = 10的那些元素,而不是给我所有其中一个元素具有chr = 10的文档(以及其他所有段)。
请进一步注意,根据MongoDB文档,“ $ elemMatch”和“ $”都仅返回第一个匹配项。 但是,我的收藏集中有文档,其中有两个或多个chr = 10的元素。我想获取所有元素,在这种情况下,也希望在一个数组中包含多个chr 10元素。
我想返回以下字段:
_id, chr, start, end, length, snps
背部。 如何在Meteor中查询? 我尝试$elemMatch
$in
但无济于事。 如果您仅针对MongoDB回答此问题,请这样做,我将尝试将其转换为Meteor Javascript。
在此先感谢您的帮助!
PS:这是在Meteor服务器端,不确定这是否重要
你可以尝试找到投影
询问
db.collection.find({"segments.chr":"10"},{"segments.$":1}).pretty()
输出量
{
"_id" : "HK4WXc5mR6fyesjpP",
"segments" : [
{
"chr" : "10",
"start" : "83865742",
"end" : "90981118",
"length" : "6.3",
"snps" : "1380"
}
]
}
{
"_id" : "3N4Z2dtX5PiuqmCFv",
"segments" : [
{
"chr" : "10",
"start" : "83865742",
"end" : "90981118",
"length" : "6.3",
"snps" : "1380"
}
]
}
希望对你有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.