Mongodb 如何在groovy中使用objectID访问任何列?

Mongodb 如何在groovy中使用objectID访问任何列?,mongodb,groovy,jmeter,Mongodb,Groovy,Jmeter,我将ObjectId(“5e0f216aab9234688b125ac1”)存储在变量I-e complete值中,在下面的代码中,我试图访问EmployeeOID,它是一个整数 try { MongoCollection<Document> collection = vars.getObject("collection"); Document result = collection.find(eq("_id",'completeValue').first()); log.i

我将ObjectId(“5e0f216aab9234688b125ac1”)存储在变量I-e complete值中,在下面的代码中,我试图访问EmployeeOID,它是一个整数

try {
    MongoCollection<Document> collection = vars.getObject("collection");
Document result = collection.find(eq("_id",'completeValue').first());
log.info (result)
if(result !=null){

vars.put ("Employeeoid", result.get("EmployeeOID").tointeger());
log.info (Employeeoid)
return "Employeeoid=" + Employeeoid;
}

我相信正确的语法应该是:

Document result = collection.find(eq("_id", new ObjectId('5e0f216aab9234688b125ac1'))).first()
参考资料:


别忘了导入FindTable!这对我来说很好

FindIterable<Document> EmployeeOID = collection.find(eq("EmployeeOID ", new ObjectId("5e0f216aab9234688b125ac1")));
for (Document doc : EmployeeOID ) {
log.info(doc.get("_id").toString());
 }
FindIterable EmployeeOID=collection.find(eq(“EmployeeOID”,新ObjectId(“5e0f216aab9234688b125ac1”));
用于(文档文档:EmployeeOID){
log.info(doc.get(“_id”).toString();
}

[mongo][jmeter][groovy]

试试
findOne(…)
@injecteer运气不好!文档结果=collection.findone(eq(“\u id”,“completeValue”))错误:响应代码:500响应消息:异常:groovy.lang.MissingMethodException:没有方法签名:com.mongodb.client.internal.MongoCollectionImpl.findone()适用于参数类型:(com.mongodb.client.model.Filters$simplencodingfilter)值:[{fieldName=''u id',value=completeValue}]可能的解决方案:find()、find()、find()、find(com.mongodb.client.ClientSession)、find(java.lang.Class)、find(org.bson.conversions.bson)关于使用此文档的结果=collection.find(eq('u id',vars.get(new ObjectId(“id”))Iam收到此响应:响应消息:异常:java.lang.IllegalArgumentException:ObjectId的十六进制表示形式无效:[id]是谁告诉您使用
collection.find(eq(“\u id”,vars.get(new ObjectId)())
,我可能正遭受某种形式的精神疲劳,但我觉得我建议使用
collection.find(eq(“_id”,new ObjectId('5e0f216aab9234688b125ac1'))
在我的例子中,十六进制字符串实际上是一个动态的东西,我存储在名为“id”的变量中。我不能这样说,因为我不知道它会是什么。然后您需要使用
集合。查找(eq(“\u id”,vars.get(new ObjectId(id)))
,签出并撰写文章以了解有关Groovy脚本的更多信息。我尝试了:Document result=collection.find(eq(“\u id”,vars.get(new ObjectId(id)));但是运气不好!从错误中,我的采样器似乎无法从以前的采样器中获取变量值(这实际上是我可以在日志中看到的值)错误:响应代码:500响应消息:异常:groovy.lang.MissingPropertyException:没有此类属性:类的id:Script43
FindIterable<Document> EmployeeOID = collection.find(eq("EmployeeOID ", new ObjectId("5e0f216aab9234688b125ac1")));
for (Document doc : EmployeeOID ) {
log.info(doc.get("_id").toString());
 }