Вот мои данные, состоящие из коллекции books и подколлекции books.reviews.
books = [{
_id: ObjectId("5558f40ad498c653748cf045"),
title: "Widget XYZ",
isbn: 1234567890,
reviews: [
{
_id: ObjectId("5558f40ad498c653748cf046"),
userId: "01234",
rating: 5,
review: "Yay, this great!"
},
{
_id: ObjectId("5558f40ad498c653748cf047"),
userId: "56789",
rating: 3,
review: "Meh, this okay."
}
]
}]
В Node.js (с использованием Mongoose) мне нужно, чтобы пользователи могли отправлять обзоры через форму, отправляя обзор и isbn книги на сервер со следующими условиями:
- Если книги с определенным номером isbn еще не существует, добавьте ее, а затем добавьте обзор (очевидно, его еще не существует).
- If the book does exist...
- If the review doesn't exist for this book for this user, add it.
- Если отзыв для этой книги существует для этого пользователя, обновите его.
Я могу сделать это с помощью 4 отдельных запросов, но я знаю, что это не оптимально. Какое наименьшее количество запросов я мог бы использовать (и, конечно, что это за запросы)?