【发布时间】:2018-06-08 14:42:32
【问题描述】:
我想将 java 字符串解析为 mongo DBObject 或 BasicDBObject,如下所示。
List<DBObject> query = new ArrayList<DBObject>();
String allQry = "{ \"$match\" : { \"CUSTOMERID\" : { \"$gt\" : 10}}}, { \"$project\" : { \"CUSTOMERNAME\" : 1 , \"COUNTRY\" : 1 , \"CUSTOMERID\" : 1}},{ \"$sort\" : { \"COUNTRY\" : 1}}";
BasicDBObject dbobj = BasicDBObject.parse(allQry);
query.add(dbobj);
System.out.println("qqqquery : "+query);
Cursor aggCur = collection.aggregate(query, aggOpt);
运行上面的示例代码后,它会输出qqqquery : [{ "$match" : { "CUSTOMERID" : { "$gt" : 10}}}]。 allQry 中有 $match、$project 和 $sort。为什么不在此查询中包含$project 和$sort?它只包括$match,谁能帮忙检查一下这个原因?谢谢。
【问题讨论】:
-
请正确格式化
-
无法理解您的问题。请对其进行编辑以使其更具可读性。
-
你在中间结束对象。将所有
},{替换为,。投票结束是错字。 -
感谢您帮助编辑示例代码。我将所有 },{ 替换为 ,它会抛出异常 com.mongodb.MongoCommandException: Command failed with error 16435: 'A pipeline stage specification object must contain just one field.'
-
错误16435在这里有答案:stackoverflow.com/questions/39060221/…