У меня возникла проблема с некоторыми данными, которые я храню в своем MongoDB (Примечание: я использую mongoose в качестве ODM). У меня есть две схемы:MongoDB - Query conundrum - Документ refs или subdocument
mongoose.model('Buyer',{
credit: Number,
})
и
mongoose.model('Item',{
bid: Number,
location: { type: [Number], index: '2d' }
})
Покупатель/Деталь будет иметь родителя/ребенка ассоциацию, с отношением один-ко-многим. Я знаю, что я могу настроить элементы для встраивания поддоков в документ покупателя или Я могу создать два отдельных документа с ссылками на идентификаторы объектов.
Проблемы я столкнулся в том, что мне нужно запросить товары где это ставка ниже, чем кредит покупателя но где расположение вблизи некоторых гео координаты.
Чтобы удовлетворить первые критерии, кажется, что я должен вставлять элементы в качестве поддомена, чтобы я мог сравнивать два числа. Но, чтобы сравнить местоположения с запросом geoNear, кажется, было бы лучше разделить документы, иначе я не смогу выполнить geoNear для каждого вложенного документа.
Есть ли способ, которым я могу выполнять обе задачи по этим данным? Если да, то каким образом я должен структурировать свои данные? Если нет, есть ли способ, которым я могу выполнить один запрос, а затем второй запрос результата из первого запроса?
Благодарим за помощь!