[英]custom search between users in mongodb
数据
location:{
type: String ,
required: true
}
HTML注册
<label>location*</label>
<select name="location" class="long" id="location">
<label class="optional">location</label>
<option value="blah">blah</option>
<option value="blahh">blahh</option>
<option value="blahh">blahh</option>
</select>
我希望用户在同一位置查看其他用户的个人资料(作为建议),因此我以注册表格的形式添加位置选择,因此如何从他的数据库中提取其位置并将其作为条件放在find({})
- 这可能吗 ?
- 还是有更好或更实用的方法来做到这一点?
我不确定我是否完全理解您的问题,但是我会根据对问题的理解回答您。 如果您希望能够计算出用户位置之间的距离,那么这就是您要做的。
将用户的位置存储为用户文档中的字段。
{ id:1, name: John, coordinates:[latitude, longitude] }
然后,您可以在服务器上使用$ geoNear管道来使所有用户都靠近otherUsersCoordinates
,这也是一个列表[纬度,经度]。
db.users.aggregate([ { $geoNear:{ near: {coordinates: otherUsersCoordinates}, distanceField: "distance.calculated", maxDistance: radius, num: parseInt(limit), spherical: true } ]);
如果这是您要的答案,那么上述方法将使您成为所有最近的用户。 然后,您可以根据需要使用结果填充HTML。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.