пользовательский поиск между пользователями в mongodb - PullRequest
0 голосов
/ 11 сентября 2018

данные

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({})

  • Возможно ли это?
  • Или есть ли лучший или более практичный способ сделать это?

1 Ответ

0 голосов
/ 11 сентября 2018

Я не уверен, что полностью понимаю ваш вопрос, но я отвечу вам в соответствии с моим пониманием вопроса. Если вы хотите иметь возможность рассчитать расстояние между местоположениями пользователей, то именно так вы и поступите.

  1. сохранить местоположение пользователя в виде поля в документе пользователя.

    {
      id:1,
      name: John,
      coordinates:[latitude, longitude]
    }
    
  2. На вашем сервере вы можете затем использовать конвейер $ geoNear, чтобы приблизить всех пользователей к otherUsersCoordinates, который также является списком [широта, долгота].

    db.users.aggregate([
     {
      $geoNear:{
      near: {coordinates: otherUsersCoordinates},
      distanceField: "distance.calculated",
      maxDistance: radius,
      num: parseInt(limit),
      spherical: true
     }
    ]);
    

Если это то, что вы спрашивали, ответ «да», то вышеуказанный подход поможет вам всех ближайших пользователей. Затем вы можете использовать результаты для заполнения своего HTML-кода так, как вам хочется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...