MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongoose, MongoDB:Как да запазите() документ след push()?

Мисля, че зависи от това колко често ще се добавят коментари към публикацията ви

Ако е много често, тогава може да искате да получите най-новия брой коментари, който ще бъде във вашето обратно извикване за запазване така:

myPost.comments.push({user: 42, text: 'blablabla'});
myPost.save(function (err, post) {
    newCount = post.comments.length
});

Не забравяйте, че push() е атомен в Mongoose. С други думи, той използва $push под капака, а не $set (контраст с nonAtomicPush ). Така че на теория произволен брой други натискания/запазвания на коментари могат да се случват едновременно, което означава, че в дадения от вас пример comments.length не е непременно n+1

Ако не очаквате много коментари, тогава вашият пример трябва да е достатъчен. От време на време може да е по-неточно. Предимството е, че ще бъде малко по-бързо, тъй като извличането на броя ще бъде синхронно




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Django с mongodb прави ли миграциите нещо от миналото?

  2. mongodb $match операция в $lookup за сравняване на objectId не работи според очакванията

  3. Актуализирайте масива Mongo:премахнете динамичния ключ

  4. достъп до поддокументи на Rails 3 с помощта на Mongoid

  5. Не може да се извлече стойност _id с помощта на mgo с golang