javascript - 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。
推荐阅读
- spring - SpringBoot RestTemplate GET 返回空正文
- sql - 访问 SQL 查询以使用条件删除除最后一个最大日期之外的所有日期
- java - 保存 Runnable 实现的函数
- python-3.x - 使用 Python 从 zipfile 中提取特定文件
- oracle - 比较 2 个日期字段 - 当一个日期字段为空时
- c# - Copying template doc to active doc
- c# - 我可以在不使用 xcode 的情况下在 mac 上开发 c# gui 应用程序吗
- webview - 如果我设置 targetSdkVersion 28,AdvancedWebView (delight-im/Android-AdvancedWebView) 将停止显示网页
- input - 在 ZKoss 的输入类型密码中禁用浏览器的自动完成凭据
- python - Django ORM - 按子查询分组和注释