Go altında MongoDB için mgo sürücüsünü kullanıyorum.mgo ile Go (golang) içinde MongoDB: Bir kaydı nasıl güncellerim, güncellemenin başarılı olup olmadığını öğrenmek ve verileri tek bir atom işleminde almak mı?
Uygulamam bir görevi soracaktır (Mongo'da "işler" adlı bir koleksiyondan yalnızca bir kayıt seçin) ve sonra kendini bu görev için tamamlamak üzere bir asigne olarak kaydeder (aynı "iş" kaydına yönelik bir güncelleştirme, kendini ayarlama vekil olarak).
Program, hepsi aynı Mongo'yla konuşan çeşitli makineler üzerinde çalışıyor olacak. Programım mevcut görevleri listeler ve birini seçtiğinde, diğer örnekler bu atamayı zaten almış olabilir ve geçerli atama başarısız olmuş olabilir.
Güncelleme sırasında okuduğum ve sonra güncelleştirdiğim kaydın belirli bir değeri (bu durumda, bir alıcı) içermediğinden nasıl emin olabilirim?
Tek bir ödev almaya çalışıyorum, hangisi olursa olsun, bu yüzden önce bekleyen bir görevi seçmeli ve onu atamayı denemeliyim, yalnızca güncelleştirme başarılı olduğunda bunu koru.
Yani, benim sorgu gibi bir şey olmalıdır: koleksiyonun 'işler' tüm kayıtları itibaren
" güncelleme sadece bir o vardır asignee = null, atanan olarak benim kimliği oluşturulmasını Sonra bana ver. Bu işi kayıt ederek işimi yapabilirim. "
Go için mgo sürücüsü ile bunu nasıl ifade edebilirim?
Aslında, ihtiyacım olan çözüm sunulan bir tux21b. Tüm "seçenekleri" geri almam, ardından birini seçmem ve sonra kendime atamayı denemeliyim. Başarısız olursa, başka biriyle deneyeceğim. –
Neden TÜM seçeneklerden birini seçmelisiniz? Seçilmemiş olanı seçmeniz gerektiğini söylediniz mi (aka assignee == null)? –
Haklısınız. Benim ihtiyaçlarım, soruyu yazdığımda düşündüğümden farklıydı, ama cevabınız soruyu daha iyi karşılar. –