MongoDB:如何查找(并返回)多维数组中的元素
MongoDB: How to find (and return) elements in a multidimensional array?
这是JSON结构,注意最后一个条目有两个多维数组,一个用于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
。我如何在流星查询这个?我尝试了$elemMatch
和$in
,但无济于事。如果你只回答MongoDB,请这样做,我会尝试将其转换为流星Javascript。
提前感谢您的帮助!
注::这是在流星服务器端,不确定这是否重要
您可以尝试查找与投影
查询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"
}
]
}
希望对大家有所帮助
相关文章:
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- Mongoose-在更新中删除数组元素
- javascript数组元素是否知道其封闭数组
- 将数组元素附加到FormData dos'不适用于Firefox 15
- 如何在javascript中使用click函数选择数组元素
- 如何在JavaScript中剥离数组元素中的非整数
- 消隐数组元素是否生成自己的属性
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- 在Codrops的内容中添加数组元素展开缩略图网格预览
- 如何使用Jquery水平打印表中的数组元素,并在某个元素之后垂直打印
- 如何访问数组中的数组元素(JavaScript)
- 生成ACF标记位置的数组(元素列表后缺少])
- validate.js验证数组元素
- JavaScript Unshift EACH 数组元素
- 如何在加号运算符之后选择数组元素的一部分
- 访问标记图标的图像数组元素
- JavaScript 合并相同的数组元素
- 删除仅空格数组元素
- JavaScript闭包和返回数组元素