Невозможно обновить вышитый MongoDB существующий документ только на одну строку (с помощью Android Studio)

Невозможно обновить вышитый MongoDB существующий документ только на одну строку (строка пароля). Вот так выглядит моя коллекция:

owner_id: "5c17d8b1698a5454e37cAS45"

facility_password: "123456789"

company_name: "ABS"

Единственное, что мне удалось - это заменить весь существующий документ новым:

final StitchAppClient client = Stitch.getDefaultAppClient();
                                 final RemoteMongoClient mongoClient = client.getServiceClient
                                         (RemoteMongoClient.factory, "mongodb-atlas");
                                 String UserPasswordStitch = mSharedPreferences.getString
                                         ("UserPasswordSaved", "NullPassword");
                                 final RemoteMongoCollection<Document> coll = mongoClient
                                         .getDatabase("IronHorse_DB").getCollection("Facilities");

                                 client.getAuth().loginWithCredential(new ServerApiKeyCredential
                                         (UserPasswordStitch)).continueWithTask(new Continuation<StitchUser,
                                         Task<RemoteUpdateResult>>()
                                 {
                                     @Override
                                     public Task<RemoteUpdateResult> then(@NonNull Task<StitchUser>
                                                                                  task) throws Exception
                                     {
                                         if (!task.isSuccessful())
                                         {
                                             Log.e("STITCH", "Login failed!");
                                             throw task.getException();
                                         }                                     

                                         final Document queryDoc = new Document("owner_id", task.getResult().getId());
                                         queryDoc.put("facility_password", oldPass);


                                         final Document updatedDoc = new Document("owner_id", task.getResult().getId());
                                         updatedDoc.put("facility_password", newPassFirst);


                                         return coll.updateOne(queryDoc,updatedDoc);
                                     }
                                 }).addOnCompleteListener(new OnCompleteListener<RemoteUpdateResult>()
                                 {
                                     @Override
                                     public void onComplete(@NonNull Task<RemoteUpdateResult> task)
                                     {

                                         if (task.isSuccessful())
                                         {

                                             showCustomToast(getString(R.string.pass_been_changed_success), R.drawable.toast_custom, Toast.LENGTH_LONG);

                                             //recreate .this activity
                                             Handler handler = new Handler();
                                             handler.postDelayed(new Runnable()
                                             {
                                                 @Override
                                                 public void run()
                                                 {
                                                     SharedPreferences.Editor editor = mSharedPreferences.edit();
                                                     editor.putString("onSavedFacilityPass", newPassFirst);
                                                     editor.commit();
                                                     recreate();
                                                 }
                                             }, 1500);

                                             //return;
                                         }
                                         else
                                         {
                                             task.getException().printStackTrace();
                                             showCustomToast("There was a problem with changing password !", R.drawable.toast_emergency_custom, Toast.LENGTH_LONG);
                                         }
                                     }
                                 });

Но я искал только заполнение одной строки пароля новыми данными

0 ответов

Другие вопросы по тегам