MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose, MongoDB:Jak zapisać () dokument po push()?

Myślę, że to zależy od tego, jak często komentarze będą dodawane do Twojego posta

Jeśli jest to bardzo częste, możesz chcieć uzyskać ostatnią liczbę komentarzy, która byłaby w zapisie wywołania zwrotnego w następujący sposób:

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

Pamiętaj, że push() jest niepodzielne w Mongoose. Innymi słowy używa $push pod maską, a nie $set (w przeciwieństwie do nonAtomicPush ). Tak więc teoretycznie dowolna liczba innych operacji push/save do komentarzy może zachodzić jednocześnie, co oznacza, że ​​w podanym przykładzie comments.length niekoniecznie wynosi n+1

Jeśli nie oczekujesz wielu komentarzy, Twój przykład powinien wystarczyć. Od czasu do czasu może być mniej dokładny. Plusem jest to, że będzie to trochę szybsze, ponieważ pobieranie licznika będzie synchroniczne




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Konfiguracja obiektu musi być tablicą zawierającą element klasy w yii2 z mongodb

  2. MongoDB z wyjątkiem java w głównym wątku java.lang.NoClassDefFoundError:org/bson/conversions/Bson

  3. Jak zmienić poddokument po znalezieniu za pomocą mangusty?

  4. Implementacja dla wszystkich klas BsonIgnoreExtraElements

  5. Drukowanie daty MongoDB z PHP