Вложенный запрос с подстановочным знаком

#mongodb-query

#mongodb-запрос

Вопрос:

Представьте следующий пример.

 {
 "a": {
  "id": 1,
  "b": {
   "items: {
    "1": {
     fieldA: "value",
     fieldB: "value"
    },
    "2": {
     fieldA: "value",
     fieldB: "value" 
    },
    "3": {
     fieldA: "value",
     fieldB: "value"
    },
   }
  }
 }
 "a": {
  "id": 2,
  "b": {
   "items: {
    "1": {
     fieldA: "value",
     fieldB: "value"
    },
    "2": {
     fieldA: "value"
    },
    "3": {
     fieldA: "value"
    }
   }
  }
 }
}
  

Теперь я хочу получить все a, где «FieldB» отсутствует внутри любого элемента. В приведенном выше примере результатом должно быть a с id==2. Есть идеи, как это сделать?

Ответ №1:

Хорошо, найдено решение.

 {
 { $project: { items: { $objectToArray: '$a.b.items' } } },
 { $match: { 'items.v.fieldB': { $exists : false } } }
}