Mongodb 如何指定键值对

Mongodb 如何指定键值对,mongodb,Mongodb,首先,让我说,我是一个新手,所以我可能不会问这个问题,因为它可以问清楚。开始 从java调用函数FindName(int,string)(下面的代码段),我在DBObject ref语句中得到了JSONParser错误。如果我对值对进行硬编码,代码可以正常工作,但目标是调用例程传递不同的值并获得正确的结果 传递的值是有效的,我甚至打印LN来验证这些值 问题似乎是,即使值是有效的int和string,mongodb似乎也不允许您在键值对中指定传递给该函数的值的名称 因此,我猜想您需要将传入的日期、

首先,让我说,我是一个新手,所以我可能不会问这个问题,因为它可以问清楚。开始

从java调用函数FindName(int,string)(下面的代码段),我在DBObject ref语句中得到了JSONParser错误。如果我对值对进行硬编码,代码可以正常工作,但目标是调用例程传递不同的值并获得正确的结果

传递的值是有效的,我甚至打印LN来验证这些值

问题似乎是,即使值是有效的int和string,mongodb似乎也不允许您在键值对中指定传递给该函数的值的名称

因此,我猜想您需要将传入的日期、名称值转换为键值对可以接受的格式。问题是如何做到这一点

静态字符串FindName(int日期,字符串名称)


更新。经过多次尝试和错误后,我发现如果动态构建字符串,然后使用动态字符串执行ref,它就可以工作了

这起作用了。我不知道这是否是正确的编码方式,但这是有效的,所以现在将继续使用它

  String mdbStr = "{PnrByDateCustom: {date:" + value + "}}";
  System.out.println("mdbStr = " + mdbStr);

  DB db = mongoClient.getDB("tpfdf");
  DBCollection PNR = db.getCollection("PNR");
  DBObject ref = (DBObject) JSON.parse("{}");
//ref=(DBObject)JSON.parse(“{PnrByDateCustom:{date:value}”)


这看起来不对:{date:date。)试试{date:date}谢谢,但在我发布复制的代码时,这是对我的一次手指检查,但需要澄清的是,错误仍然存在…{PnrByDateFlightCustom:{date:date,name:name}}^at com.mongodb.util.JSONParser.parse(JSON.java:208)位于com.mongodb.util.JSONParser.parseObject(JSON.java:241)
  String mdbStr = "{PnrByDateCustom: {date:" + value + "}}";
  System.out.println("mdbStr = " + mdbStr);

  DB db = mongoClient.getDB("tpfdf");
  DBCollection PNR = db.getCollection("PNR");
  DBObject ref = (DBObject) JSON.parse("{}");
  ref = (DBObject) JSON.parse(mdbStr);