我在 MongoDB 中存储的一些数据遇到了一些问题(注意:我使用 mongoose 作为 ODM)。我有两个模式:
mongoose.model('Buyer',{
credit: Number,
})
和
mongoose.model('Item',{
bid: Number,
location: { type: [Number], index: '2d' }
})
买方/项目将有一个父/子关联,具有一对多的关系。我知道我可以将项目设置为嵌入到买方文档的子文档,或者我可以创建两个单独的文档,其中对象 ID 相互引用。
我面临的问题是我需要查询出价低于买方信用的项目,但也需要查询位置靠近某个地理坐标的位置。
为了满足第一个标准,我似乎应该将 Items 作为子文档嵌入,以便我可以比较这两个数字。但是,为了将位置与 geoNear 查询进行比较,似乎最好将文档分开,否则,我无法对每个子文档执行 geoNear。
有什么方法可以对这些数据执行这两项任务?如果是这样,我应该如何构建我的数据?如果没有,有没有一种方法可以让我执行一个查询,然后对第一个查询的结果执行第二个查询?
谢谢你的帮助!