Wpis z mikrobloga

#mongodb #programowanie #programista15k Jest tu jakiś spec?

Mam test:
1. await save dokumentu (dodanie elementu do pola, które jest tablicą)
2. await findOne tego samego dokumentu i sprawdzenie czy element się dodał

Abstrahując od samego testu - mam tutaj race condition.

Raz na kilka uruchomień test wywala się i mówi, że tablica jest pusta, a po sprawdzeniu w bazce element jest dodany.

Zapisuję z opcją { j: true }.

Czego nie wiem? Dlaczego mam tu h----d?
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@murdoc: masz jedną bazę? j: to tylko że operacja została zapisana a nie wykonana, jak primary wysiądzie to taka operacja może wyparować. spróbuj w:1
  • Odpowiedz
@zibizz1: tak, bez replik, lokalnie sobie coś developuje.

Przyszło mi do głowy, żebym zrobił pooling na pole __v i zaczekać na kolejną wartość, ale wydaje mi się to mało wydajne w testach i nadal nie rozwiązuje to mojej zagadki - dlaczego jeśli zrobię await na save, to nadal mogę trafić na stan sprzed zapisu
  • Odpowiedz