ASP.NET Identity в MVC-клиенте с использованием IdentityServer вызывает цикл

Резюме

  • У вас есть существующая коллекция записей.
  • У вас есть набор записей, содержащих обновления существующих записей.
  • Some Обновления ничего не обновляют, они дублируют то, что у вас уже есть.
  • Все обновления содержат те же самые поля, которые уже есть, возможно, разные значения.
  • Вы хотите (/ g5)

Заметьте, я предполагаю, что PyMongo изменится в соответствии с вашим выбранным языком.

Инструкции:

  1. Создайте коллекцию с индексом с уникальным значением = true, чтобы вы не получали повторяющиеся записи.
  2. Итерируйте по своим входным записям, создавая их из 15 000 записей или так. Для каждой записи в партии создайте dict, состоящий из данных, которые вы хотите вставить, предполагая, что каждый из них будет новой записью. Добавьте к ним «созданные» и «обновленные» временные метки. Выполните это как команду пакетной вставки с флагом 'ContinueOnError' = true, поэтому вставка всего остального происходит, даже если есть дубликат (там, где это будет похоже). ЭТО ПРОИСХОДИТ ОЧЕНЬ БЫСТРО. Массовые вставки рок, я получил 15k / секунду производительности. Дальнейшие примечания о ContinueOnError см. В http://docs.mongodb.org/manual/core/write-operations/ Запись вставки происходит ОЧЕНЬ быстро, так что вы будете с этими вставками в кратчайшие сроки. Теперь пришло время обновить соответствующие записи. Сделайте это с помощью пакетного поиска, намного быстрее, чем по одному.
  3. Повторите все ваши записи ввода, создав партии 15K или около того. Извлеките ключи (лучше всего, если есть один ключ, но не может быть помог, если нет). Получите эту группу записей из Mongo с помощью запроса db.collectionNameBlah.find ({field: {$ in: [1, 2,3 ...}). Для каждой из этих записей определите, есть ли обновление, и если да, выполните обновление, включая обновление «обновленной» метки времени. К сожалению, следует отметить, что MongoDB 2.4 и ниже НЕ включают операцию массового обновления. Они работают над этим.

Точки оптимизации клавиш:

  • Вставки значительно ускорят ваши операции навалом.
  • Извлечение записей в массовом порядке также ускорит процесс.
  • Индивидуальные обновления - единственный возможный маршрут, но 10Gen работает над ним. Предположительно, это будет в 2.6, хотя я не уверен, что он будет закончен к тому времени, есть много чего заняться (я слежу за их системой Jira).

0
задан CJ Scholten 2 March 2019 в 10:18
поделиться