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