Как вернуть последний push () внедренный документ - PullRequest
1 голос
/ 11 января 2012

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

Использование примера блога от 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 нового комментария, который помог бы, а также позволил мне добавить другие функции, такие как редактирование комментария или удаление комментария.

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

1 Ответ

1 голос
/ 11 января 2012

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

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

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