Вопрос

Я застрял, пытаясь выяснить, возможно ли это.

Используя пример блога от Mongoose для демонстрации, однако мой фактический вариант использования немного сложнее:

var Comments = new Schema({
    title     : String
  , body      : String
  , date      : Date
});

var BlogPost = new Schema({
    author    : ObjectId
  , title     : String
  , body      : String
  , date      : Date
  , comments  : [Comments]
});

var BlogPost = mongoose.model('BlogPost');
var post = new BlogPost();

Мне нужно создать новый комментарий и вернуть новый Комментарий клиенту. Наличие комментариев в качестве встроенного документа действительно удобно для меня и хорошо работает. Однако я не хочу возвращать каждый комментарий клиенту каждый раз, когда добавляю новый.

post.comments.push({ title: 'My comment' });

Как я использую Mongoose, если бы я мог немного получить id Нового комментария, который поможет, а также позволит мне добавить другие функции, такие как редактирование комментариев или удаление комментария.

Единственный способ сделать это - иметь комментарии в качестве собственной коллекции?

Это было полезно?

Решение

Я предполагаю, что проблема, которую вы пытаетесь решить, заключается в том, чтобы обновить страницу после того, как клиент публикует комментарий, верно?

Итак, вы вставляете новый комментарий. Это означает, что у вас уже есть свои данные. Выполните вставку и верните данные клиенту. Или, что еще лучше, верните простой ACK, поскольку клиент также имеет полные данные комментариев и может сделать его само по себе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top