Задать вопрос
@ATNC
Full-stack web\python developer

Почему не работает FindOneAndUpdate() используя драйвер mongo?

Здравствуйте. Необходимо апдейтнуть документ, но если по заданным критериям такого документа нету - создать. Но при условии если документ есть - вернуть его версию до апдейта. Вот как пытаюсь это сделать но получаю ошибку no documents in result. Скажите, пожалуйста, что здесь не так?

P.S. Если в ReturnDocument поставить опцию After - то все работает. Но мне нужно чтобы возвращался документ до апдейта

upsert := true
before := options.Before
opt := options.FindOneAndUpdateOptions{
		Upsert: &upsert,
                ReturnDocument: &before,
	}
result := collectionEvent.FindOneAndUpdate(ctx, filter, update, &opt)
  • Вопрос задан
  • 186 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Aco
@Aco
Заклинатель кода
Рекомендую-таки использовать фабрику для options
options.FindOneAndUpdate().SetReturnDocument(options.Before).SetUpsert(true)


По вопросу, скорее всего документа и правда нету по фильтру. Проверьте условие и скиньте сюда filter
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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