Mongodb多索引数据的地理空间查询



我有一个像这样的集合:

db.records.save( { name : "John Smith", addresses : [ { context : "home" , loc : [ 55.5, 42.3 ] } , { context : "work", loc : [ -74 , 44.74 ] } ] } )

我创建了一个这样的索引:

db.records.createIndex( { "addresses.loc": "2d" } )

现在,当我试着做一个查询:

db.Company.findOne({ "stores.loc" : { $near :[55.5, 42.3]}})

我期望得到的是john smite和一个地址数组,其中只有相关地址,我得到的是john smite和所有地址,所以我不知道。

如何解决这个问题?

如果你可以改变你的模式,在一个文档中获取一个地址,然后从那里获得最近的节点,这是可以修复的:

db.records.save( {
  name : "John Smith",
  address_context: "home",
  address_loc : [ 55.5, 42.3 ]
} )
db.records.save( {
  name : "John Smith",
  address_context: "work",
  address_loc : [ -74 , 44.74  ]
} )

现在在address_loc和查询上创建索引,您将获得相关的最近节点

相关内容

  • 没有找到相关文章

最新更新