2016-02-16 5 views
0

Как запросить все документы, присутствующие внутри массива, который сам присутствует в коллекции MongoDB под Node.js.Запросить документы в массиве в mongodb с помощью node.js

Например: У меня есть БД со структурой:

{ 
    "name1":[{"height":"5.5"}, 
      {"weight":"57"}], 
    "name2":[{"height":"6.1"}, 
      {"weight":"74"}] 
} 

Что запрос я должен сделать, чтобы получить все документы (т.е. рост, вес) массива «name1»

Выход должен быть:

{ 
    { "height":"5.5"} 
    {"weight":"57"} 
} 
+2

Каков ваш ожидаемый результат? –

ответ

0

Мое предложение было бы реорганизовать сбор, так что каждый документ имеет ключ от имени и ключа physicalattributes например

{ 
    'name' : 'name1', 
    'physAttr': ['height': heightvalue, 
         'weight': weightvalue] 
} 

то предположит, что вы хотите найти все документы с высотой 5.5, то запрос будет тривиальным

db.collection.find({ 'physAttr.height': 5.5 }) 

Как описан в этом вопросе каждый документ в коллекции имеет другую схему от других (другой ключ имени для каждого документа) затрудняет выполнение запросов.

Смежные вопросы