java - 异常: FieldPath 'C6' doesn't start with $"in mongo Java

标签 java mongodb aggregation-framework

我正在使用 Java 开发 Mongodb。因为我试图在某些条件下选择某些记录,包括group by。我使用的代码如下。

DBObject wherequery = new BasciDBOBject();
wherequery.put("deviceID", C6);
wherequery.put("reqTime", new BasicDBObject(
    "$lt", sometime)
    .append("$gt", someothertime));
DBObject project = new BasicDBObject("$project",
    wherequery);
DBObject groupFields = new BasicDBObject("_id",
    "$requestID");
DBObject group = new BasicDBObject("$group", groupFields);
AggregationOutput output = collection.aggregate(project, group);

当我运行此代码时,出现以下错误:

exception: FieldPath 'C6' doesn't start with $"

这个错误是什么意思?它表示我使用过的deviceID C6。我错过了什么或者我怎么错了?

请帮帮我

最佳答案

如果要选择与指定条件匹配的文档,则应在第一个 pipline 阶段使用 $match 运算符,而不是 $project

关于java - 异常: FieldPath 'C6' doesn't start with $"in mongo Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31027762/

相关文章:

下一个显示的 Java 错误 JInternalFrame

mongodb - 将数组中的第一项投影到新字段(MongoDB 聚合)

java - 用Java打印不同字体大小的发票

java - Gradle Jar按预期工作,但Gradle Run失败

java - 在 java 中打包 C 二进制文件

mongodb - 如何对 mongoDB 上的集合进行分片?

node.js - mongodb使用json更新同一行的多个字段

javascript - 在javascript中循环完成后如何执行语句?

arrays - mongoDB 对嵌套对象数组的聚合查找

mongodb - 计算对象属性在 mongo 对象数组中存在的次数