LinkedHashMap в.NET

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

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:},
  { $skip: }
]
//depends on your mongo version you may need to set cursor as well.
,
{ cursor: { batchSize:  } }
)
  .then()
  .catch();

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

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

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

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

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

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

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

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

16
задан nawfal 30 June 2014 в 15:33
поделиться

3 ответа

Немного поиска с помощью Google, кажется, показывает, что существует не создано в эквиваленте C# для LinkedHashMap, но существуют некоторые сторонние доступные опции.

5
ответ дан 30 November 2019 в 22:10
поделиться

Просто для уточнения немного для читателей: LinkedHashMap только ведет себя тот путь при создании с одной конкретной перегрузкой конструктора. Обычно элементы сохраняются в порядке вставки. (Это чувствует себя немного нечетным мне, но не имеет значения.)

я не полагаю, что в.NET существует любой такой класс. Не было бы слишком трудно создать один, с помощью связанного списка элементов и словаря от ключа до узла связанного списка. Доступ затем состоял бы из выборки узла связанного списка, перемещения его голове и возвращению значения.

я был бы рад реализовать его сегодня вечером или завтра если Вы хотите - хотя, вероятно, не с полными модульными тестами и т.д. (Полностью тестирующий набор трудоемкий бизнес!)

13
ответ дан 30 November 2019 в 22:10
поделиться

Вот реализация C #, которую я нашел на форуме :

Она недокументирована, но содержит некоторые тесты. Однако это не является универсальным. По крайней мере, я так думаю.

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

2
ответ дан 30 November 2019 в 22:10
поделиться
Другие вопросы по тегам:

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