Hi @emmanuel_bernard . This is the a better example of the documents. I would edit the original post, but I cannot:
{
_id: 1,
field: {
subfield1: {
subsubfield1: [
"value",
"test"
]
},
subfield2: {
subsufield2: [
"value"
]
}
},
paths: [
"field.subfield1.subsubfield1",
"field.subfield2.subsubfield2"
]
},
{
_id: 2,
field: {
subfield1: {
subsubfield1: [
"value"
]
},
subfield2: {
subsufield2: [
"value",
"test"
]
}
},
paths: [
"field.subfield2.subsubfield2"
]
},
{
_id: 3,
field: {
subfield1: {
subsubfield1: [
"value"
]
},
subfield2: {
subsufield2: [
"value"
]
}
},
paths: [
"field.subfield1.subsubfield1"
]
},
{
_id: 4,
field: {
subfield1: {
subsubfield1: [
"value"
]
},
subfield2: {
subsufield2: [
"value"
]
}
},
paths: [
"field.subfield1.subsubfield1"
"field.subfield2.subsubfield2"
]
}
]
I have to return documents that have test
as a value in at least one of the paths specified in the paths
array. For example, the documents with _id
1 and _id
2 would be returned, because at least one of the values in paths
is a path in the document with value test
. Documents with _id
3 and _id
4 are not returned since no element of paths
is a path in the document that has value test
.
So, the answer to your question is yes, the documents has always the same structure. The field structure always has 3 levels (i.e. field.subfield1.subsubfield1).
Thank you.