我试图在mongoDB中使用NativeQuery进行简单的聚合。有可能吗?我做了很多测试,但我找不到解决办法。查询是:
String query = "{ $match :
{ dateTimestamp :
{ $gt : 1452380400000 , $lt :1453222518000}}
} ,
{ $group :
{ _id : {hour:
{ $hour : '$date'}
} ,
'myData' : { $push : '$dataUsed'}
}
},
{ $sort : { 'dataUsed' : -1}}";
Object resultObject = em.createNativeQuery(query,MyClass.class).getSingleResult();错误是:“无法规范化查询: BadValue未知顶级操作符:$match”
MongoDB版本3.0
hibernate-ogm-mongodb 4.2.0
发布于 2016-01-20 14:41:26
您可能需要尝试“调用”MongoDB的aggregate() API:
String nativeQuery = "db.collection.aggregate(["
+ "{ $match: { dateTimestamp: { $gt: 1452380400000, $lt: 1453222518000 } } }," // WHERE
+ "{ $group: { _id: { hour: { $hour : '$date'} }, myData: { $push: '$dataUsed' } } }," // GROUP BY
+ "{ $sort : { '_id.hour': -1 } }]"; // ORDER BY
Query query = em.createNativeQuery(nativeQuery, MyClass.class);https://stackoverflow.com/questions/34902657
复制相似问题