Mongodb中包含位置信息的文档

时间:2015-01-19 20:51:50

标签: javascript node.js mongodb mongoose

我正在使用node.js的mongodb。我有包含位置信息的文档,因此模式是



{
  name: String,
  location: {
    x: Number,
    y: Number
  }
}




我想从一个点获取距离一定距离的文档。所以我需要计算x^2+y^2的值并查看它是否小于距离的平方。你能告诉我怎么做吗?

1 个答案:

答案 0 :(得分:1)

首先是

{
  name: String,
  location: [
    x: Number,
    y: Number
  ]
}

location应该是一个数组,然后你可以使用$ geonear

   db.places.find(
   {
     loc:
       { $near :
          {
            $geometry : { type : "Point" , coordinates: [ 40 , 5 ] },
            $maxDistance : 500
          }
       }
   }
)

它神奇!退房 - http://docs.mongodb.org/v2.4/reference/operator/query/near/

另一个例子是......

db.places.find( { loc :
                   { $near : [ 40 , 5 ] ,
                     $maxDistance : 10
                } } )