Я немного потерян в запросе субдокументов.Найти документ с несколькими соответствующими поддоменами
Рассмотрим следующий набор вещей:
{
name: "thing1",
gadgets:
[
{
name: "gadget1",
components: [
{
name: "component1"
properties:
[
{id: "I1", value: "V1"}, {id: "I2", value: "V2"},
{id: "I3", value: "V3"}, {id: "I4", value: "V2"},...
]
},
{
name: "component2"
properties:
[
{id: "I1", value: "V1"}, {id: "I2", value: "V4"},
{id: "I3", value: "V3"}, {id: "I4", value: "V5"},...
]
}
]
},
{
name: "gadget2",
components: [
{
name: "component1"
properties:
[
{id: "I1", value: "V1"}, {id: "I2", value: "V3"},
{id: "I3", value: "V3"}, {id: "I4", value: "V2"},...
]
},
{
name: "component2"
properties:
[
{id: "I1", value: "V1"}, {id: "I2", value: "V7"},
{id: "I3", value: "V1"}, {id: "I4", value: "V2"},...
]
}
]
}
]
}
Я хочу, чтобы запросить коллекцию и получить все то, что содержит устройства с именем «gadget1» и содержит в массиве компонентов документ с именем «COMPONENT1 », то„component1“-subdocumnent должен также содержать в свойствах массива обоих документов:
{id: "I1", value: "V1"} and {id: "I2", value: "V2"}.
возможно ли это с помощью запроса?
Я попытался с помощью следующего запроса:
{ "$and": [{"gadgets.name": "gadget1"}{"gadgets.properties.id": "I1", "gadgets.properties.value": "V1"},{"gadgets.properties.id": "I2", "gadgets.properties.value": "V2"}]}
Но без успеха.