MongoDB findOneAndUpdate проекция - PullRequest
1 голос
/ 10 февраля 2020

В настоящее время я использую MongoDB и использую метод findOneAndUpdate. Я пытаюсь использовать проекцию, однако она не работает на 100% успешно.

Вот проекция:

{
  orderID: '$_id',
  _id: false,
  user: true,
  guild: true,
  order: true,
  status: true,
  orderExpiry: true,
  priority: true,
  sentAt: true
}

Как видите, я пытаюсь установить orderID в значение _id, однако, он ничего не делает.

Вот код, который я выполняю для справки:

await this.db.collection('orders').findOneAndUpdate(filter, { $set: { ...data } },
                  { returnOriginal: false, projection: this.getProjectionFields() });

Я надеюсь, что кто-то может помоги мне, спасибо!

1 Ответ

0 голосов
/ 10 февраля 2020

Насколько я знаю, проекция с .find() или подобным .findOneAndUpdate() не поддерживает преобразования полей (добавление нового поля из существующих), которые способен выполнять $project в агрегации. Таким образом, проекция может использоваться только для включения или исключения определенных полей из результата. Хотя это верно, но до некоторой степени это неверно, мы можем преобразовать поле массива с помощью операторов проекции. Проверьте: проекция .

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