У меня есть структура документа mongodb, как показано ниже:
{
"_id" : ObjectId("5b58673721b4b95a193d4e91"),
"pageId" : "page1",
"fields" : [
{
"fieldId" : "Field1",
"value" : "test"
},
{
"fieldId" : "Field2",
"value" : 6.0
},
{
"fieldId" : "Field3",
"value" : 8.0
}
]}
}
Я хочу найти все документы в коллекции, где значение для объекта, имеющего fieldId как 'Field2', равнобольше, чем значение для объекта, имеющего fieldId как 'Field3'.
т.е. Field2 (значение)> Field3 (значение)
Число объектов в массиве полей не является фиксированным.Я не могу сравнить по положению.Я должен сопоставить объекты по полю Id.Таким образом, в этом случае это должно быть на линии:Сравните: значение объекта где fieldId = 'Field2' со значением объекта где fieldId = 'Field3'
Как мне написать запрос MongoDB для этого?
Я использую MongoDB версии 4.0(Могут быть случаи, когда поля могут отсутствовать в документах. Например, документы, созданные до того, как эти поля были введены в проект)