Извлечение определенных данных в mongodb - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть mongodb, который я хочу извлечь некоторые конкретные данные. Там многоуровневый массив в данных. Однако я хочу извлечь конкретные данные на основе параметра. Но я получаю все данные в документе. Это мой запрос.

model.find({
    'level1.level_name': level,
    'level1.step.field_name': subject,
    'level1.step.sub_step.field_name1':'data1',
    'level1.step.sub_step.field_name2':'data2'
})
.select(['level1.step.sub_step.field_name3']);

Вместо того, чтобы mongodb создавал данные на основе запроса выше, он создает все field_name3 внутри документа.

Как получить только конкретные данные, которые я хочу, основываясь на запросе / критериях, которые я дал выше

Это образец того, что было произведено. Фактический результат намного длиннее, чем эти

[{"_id":"7a45339dab9e1d07946132ac","level1":[{},{},{},{},{"step":[
    {"sub_step":[{"field_name3":20},{"field_name3":10},{"field_name3":70},{"field_name3":10},**{"field_name3":70}**]},
    {"sub_step":[]},
    {"sub_step":[{"field_name3":20},{"field_name3":10},{"field_name3":70},{"field_name3":10},{"field_name3":70}]},
    {"sub_step":[{"field_name3":20},{"field_name3":10},{"field_name3":70},{"field_name3":10},{"field_name3":70}]},
    {"sub_step":[{"field_name3":20},{"field_name3":10},{"field_name3":70},{"field_name3":10},**{"field_name3":70}**]}
]},{},{}]}]

То, что я действительно ожидал, было последним field_name3 только в первой строке. Я не знаю заранее, что находится в этой области

У меня есть только запрос, и, как видно, многие поля имеют похожие данные. Некоторые из оставшихся частей не похожи как показано выше

1 Ответ

0 голосов
/ 06 ноября 2018

Если вы используете драйвер MongoDB, вы должны использовать проекцию.

model.find({
    'level1.level_name': level,
    'level1.step.field_name': subject,
    'level1.step.sub_step.field_name1':'data1',
    'level1.step.sub_step.field_name2':'data2'
}).project({'level1.step.sub_step.field_name3': true, _id: false})

См .: http://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#project

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...