Операция удаления не может удалить документ в пн go, используя groovy в Jmeter - PullRequest
2 голосов
/ 07 января 2020

Я пытаюсь удалить документ, который я создал с помощью моего скрипта, используя deleteone, а также deletemany, используя следующий код:

import com.mongodb.client.MongoCollection;
import org.bson.Document;
import static com.mongodb.client.model.Filters.*;
import org.bson.Document;
import org.bson.types.ObjectId;
import java.util.Arrays;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoClient;
import com.mongodb.MongoClientSettings;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;



try {

String mongoUser = vars.get("mongouser");
String userDB = vars.get("userdb");
char[] password = vars.get("password").toCharArray();
MongoCredential credential = MongoCredential.createCredential(mongoUser, userDB, password);
MongoClientSettings settings = MongoClientSettings.builder()
.applyToClusterSettings {builder -> 
builder.hosts(Collections.singletonList(new ServerAddress(vars.get("mongohost"), vars.get("mongoPort") as int)))}
.credential(credential)
.build();
MongoClient mongoClient = MongoClients.create(settings);


MongoDatabase database = mongoClient.getDatabase(vars.get("databaseName"));
MongoCollection<Document> collection = database.getCollection(vars.get("collectionName1"));
vars.putObject("collection1", collection);

    collection.deleteone(eq("EmployeeName", "Test Automation through Jmeter"));

    return "Document deleted";
}
catch (Exception e) {
    SampleResult.setSuccessful(false);
    SampleResult.setResponseCode("500");
    SampleResult.setResponseMessage("Exception: " + e);}

получая эту ошибку:

Response message: Exception: groovy.lang.MissingMethodException: No signature of method: com.mongodb.client.internal.MongoCollectionImpl.deleteone() is applicable for argument types: (com.mongodb.client.model.Filters$ 

SimpleEncodingFilter) значения: [Filter {fieldName = 'EmployeeName', value = Автоматизация тестирования через Jmeter}] Возможные решения: deleteOne (org.bson.conversions.Bson), deleteOne (com.mongodb.client.ClientSession, org.bson.conversions.Bson), deleteOne (org.bson.conversions.Bson, com.mongodb.client.model.DeleteOptions), deleteOne (com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.client.model.DeleteOptions), deleteMany (org.bson.conversions.Bson), deleteMany (com.mongodb.client.ClientSession, org.bson.conversions.Bson)

Что я делаю не так?

1 Ответ

2 голосов
/ 07 января 2020

Я считаю, что метод называется deleteOne, а не deleteone, поэтому правильный способ его вызова должен быть следующим:

collection.deleteOne(eq("EmployeeName", "Test Automation through Jmeter"));

См. Также javadocs для MongoCollection: https://mongodb.github.io/mongo-java-driver/3.6/javadoc/?com / MongoDB / клиент / MongoCollection. html

...