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