Uwaga: Jest to ogólny algorytm, nie jest specyficzny dla żadnej biblioteki, ponieważ metoda nano's insert()
nie oferuje niczego zautomatyzowanego do aktualizacji dokumentów.
Pobierz dokument, zapisz bieżącą wersję, zastosuj zmiany i spróbuj wysłać dokument z zapisanym numerem wersji.
Pamiętaj, aby obsłużyć możliwe 409 odpowiedzi na konflikt, które występują, gdy dokument został zmieniony w międzyczasie.
W takim przypadku należy ponownie pobrać dokument, zapisać numer wersji, ponownie zastosować zmiany, a następnie spróbować wysłać ponownie z nową wersją.
Więc tutaj jest algorytm:
- dokument Get
- Zapisz _rev
- Zastosuj zmiany
- spróbuj wysłać uaktualniony dokument z zapisanym _rev
- przejdź do kroku 1. W razie a 409
Zamówienie na i strona wiki CouchDB Replication and Conflicts, aby uzyskać więcej informacji na ten temat. Pomocna może być także pomocna How To Update A Document With Nano (The CouchDB Client for Node.js).
Wiem, że potrzebuję rewizji. Pytanie brzmi, co jest funkcją z argumentem "rewizji" w nano. Właściwa odpowiedź, ale na inne pytanie. – DSblizzard
Jest to właściwa odpowiedź nawet na twoje pytanie. Przeczytaj dokumentację [Dokumentacja API nano] (https://github.com/dscape/nano#document-functions). Istnieje tylko metoda 'insert()', co oznacza, że musisz ustawić poprawną wersję dokumentu, który chcesz wstawić. –
Czy możesz pokazać kod? – DSblizzard