Как поддерживать упорядоченные объекты в MongoDB - PullRequest
0 голосов
/ 27 июня 2018

Итак, у меня есть коллекция mongodb, называемая историями, и у каждой из них есть индексное поле, которое соответствует их определенному порядку среди других историй. Я хочу иметь возможность переупорядочивать эти истории в графическом интерфейсе и впоследствии обновлять этот порядок в моей базе данных, но я не могу найти лучший способ сделать это. Я знаю, что подобное было бы просто, если бы истории, например, хранились в структуре данных LinkedList, но я не понимаю, как я могу это сделать с коллекциями MongoDB.

В качестве примера того, к чему я клоню, скажем, например, у меня есть коллекция рассказов

[
  {
    title: 'Story 1',
    index: 0
  },
  {
    title: 'Story 2',
    index: 1
  },
  {
    title: 'Story 3',
    index: 2
  },
]

И я хотел изменить порядок списка таким образом, чтобы Story 1 следовал за Story 3, тогда мой результат в базе данных был бы

[
  {
    title: 'Story 2',
    index: 0
  },
  {
    title: 'Story 3',
    index: 1
  },
  {
    title: 'Story 1',
    index: 2
  },
]

и затем, если я захочу удалить историю 3, у меня останется

[
  {
    title: 'Story 2',
    index: 0
  },
  {
    title: 'Story 1',
    index: 1
  },
]

Для справки, я пытаюсь реализовать это, используя Javascript и Mongoose

1 Ответ

0 голосов
/ 27 июня 2018

Вы можете использовать следующий код, чтобы получить ожидаемый результат.

  1. сортировать массив по индексу:

model.find ({...}). Sort ({index: asc}). Exec (функция (ошибка, модель) {...});

  1. удалить предмет:

Вы можете найти конкретные документы, используя индекс - используйте findOne вместо поиска.

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