mongo docs指定您可以使用以下语法为计数查询指定查询提示:
db.orders.find(
{ ord_dt: { $gt: new Date('01/01/2012') }, status: "D" }
).hint( { status: 1 } ).count()
您可以使用mongo模板执行此操作吗?我有一个Query
对象,我正在调用withHint
方法。然后我致电mongoTemplate.count(query);
但是,我很确定它没有使用提示,但我并不乐观。
答案 0 :(得分:2)
当然,有一些形式,包括转到基本驱动程序,但假设使用您定义的类,您可以这样做:
Date date = new DateTime(2012,1,1,0,0).toDate();
Query query = new Query();
query.addCriteria(Criteria.where("ord_dt").gte(date));
query.addCriteria(Criteria.where("status").is("D"));
query.withHint("status_1");
long count = mongoOperation.count(query, Class);
因此,您基本上构建了一个Query
对象,并使用传递给您的操作的对象,在这种情况下为.count()
。
这里的“提示”是索引的名称,作为要在集合上使用的索引的“字符串”名称。可能默认情况下类似于“status_1”,但无论实际名称是什么。