我正在研究一种使用聚合器框架查询 mongoDB 的方法。我已经建立了聚合,但我不断收到以下异常:
Pipeline::run(): 无法识别的管道操作 \"$or"
如果我在您将 DBObject 附加或添加到查询时理解正确,它们将被隐式添加为和操作。我现在可能真的很累,但我想不出聚合框架的一两个条件。
以下是我的代码片段:
DBObject matchCriteriaTransmitter = new BasicDBObject("$match",
new BasicDBObject("someKey": "someValue").
append("someKey": "someValue"));
DBObject matchCriteriaReceiver = new BasicDBObject("$match",
new BasicDBObject("someKey": "someValue").
append("someKey": "someValue"));
BasicDBList or = new BasicDBList();
or.add(matchCriteriaTransmitter);
or.add(matchCriteriaReceiver);
DBObject matchCriteria = new BasicDBObject("$or", or);
DBObject sortCriteria = new BasicDBObject("$sort",
new BasicDBObject("compoundIndex.scenarioDtg", -1));
DBObject limitCriteria = new BasicDBObject("$limit", 1);
DBCollection collection = dao.getCollection();
AggregationOutput output = collection.aggregate(matchCriteria, sortCriteria, limitCriteria);
非常感谢任何见解!