MongoDB:如何在查询中使用属性?

时间:2013-05-10 16:18:20

标签: mongodb

我有用户收藏:

{
  "_id": { "$oid" : "514C438232F5699004000014" },
  "gender": 1,
  "loc": {
    "coordinates": [
      0.777084,
      0.701690
    ],
    "type": "Point"
  },
  "name": "H1",
  "radius": 1
},

{
  "_id": { "$oid" : "514C438232F5699004000014" },
  "gender": 1,
  "loc": {
    "coordinates": [
      0.677084,
      0.701690
    ],
    "type": "Point"
  },
  "name": "H2",
  "radius": 0.4
}

db.user.ensureIndex( { loc : "2dsphere" } )

我需要在查询查询中编写查询并使用集合行(“radius”:1)中的radius属性,如下所示:

db.user.find( { loc: { $geoWithin :{ $centerSphere : [ [0.7, 0.7 ] , radius ]}   } } )

但是mongo回归:

  

JavaScript执行失败:ReferenceError:未定义radius

我试过了db.user.find( { loc: { $geoWithin :{ $centerSphere : [ [0.7, 0.7 ] , this.radius ]} } } )

1 个答案:

答案 0 :(得分:0)

我认为你必须做双向查询。首先获取给定用户的半径,然后搜索此半径内的所有位置。