Это структура 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.
Заранее спасибо за помощь!
P.S.: это на стороне сервера Meteor, не уверен, что это важно