Функция выбора Mongoose с агрегатными или близкими функциями

Вы можете использовать атрибуты объекта события и данных:

function ShowHide(input) {
   // If you don't want the form to refresh the page, use preventDefault
   event.preventDefault(); 
   // Using dataset you can access the data attributes from the button that fired the event
   document.getElementById(event.target.dataset.divid).style.display = "block"; 
}
<div id="main">
    <form >
        <fieldset>
            <button onclick="ShowHide()" data-divid="1">Area 1</button> <!- Add data attributes to your buttons ->
            <button onclick="ShowHide()" data-divid="2">Area 2</button>
        </fieldset>
    </form>
</div>
<div id="1" style="display:none">
    Area 1
</div>
<div id="2" style="display:none">
    area 2
</div>

0
задан goutham reddy 19 January 2019 в 10:57
поделиться

1 ответ

Вы можете сделать что-то подобное ниже:

Rest.aggregate([
  {
    $geoNear: {
      near: {
        type: "Point",
        coordinates: [parseFloat(req.body.lng), parseFloat(req.body.lat)]
      },
      maxDistance: 100000,
      spherical: true,

      distanceField: "dist.calculated"
    }
  },
  {
    $project: {
      rest_status: 1,
      rest_address: 1,
      rest_name: 1,
      rest_contact: 1,
      rest_photo: 1,
      rest_menu: 1,
      rest_avg_rating: 1
    }
  }
  //even you can add limit skip below , if u need
  ,{$limit:<Number>},
  { $skip: <Number>}
]
//depends on your mongo version you may need to set cursor as well.
,
{ cursor: { batchSize: <Number or keep 0> } }
)
  .then()
  .catch();

Примечание: перед выполнением запроса убедитесь, что вы добавили индекс 2dsphere в поле dist.calculated

в случае аггегата $project используется для того, что вы хотите сделать с .select

вместо использования .near(), я использовал $geoNear [ 1112].

Если вы хотите использовать предельный пропуск, вы можете последовать примеру, другие мудрые могут удалить это.

Вы также можете добавить поля distanceMultiplier и includeLocs в зависимости от ваших требований.

выше, зависит от версии mongoDB, которую вам может понадобиться использовать cursor в совокупности.
если нет, вы можете идти вперед без использования cursor.

Надеюсь, это поможет.

Если вы все еще получаете ошибку, пожалуйста, прокомментируйте.

0
ответ дан saikat chakrabortty 19 January 2019 в 10:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: