如何从Spring发送新的Date(0)作为表达式到mongodb

我要执行以下mongodb查询:

db.clicks.aggregate([
  { $project: { mongoTimestamp: { $add: [new Date(0),"$createdAt"] } } },{
    $project: {
      month_clicked: { $month: "$mongoTimestamp" },year_clicked: { $year: "$mongoTimestamp" }
    }
  },{
    $group: {
      _id: { year_clicked: "$year_clicked",month_clicked: "$month_clicked" },clickCount: { $sum: 1 }
    }
  }
]);

但是我似乎无法弄清楚如何从Spring Rest代码中以mongo表达式的形式传递“ new Date(0)”。 我尝试了以下代码:

AggregationExpression sumExp = new AggregationExpression() {

    @Override
    public org.bson.Document toDocument(Aggregationoperationcontext context) {
        BasicDBObject bdbo = new BasicDBObject();
        bdbo.append("$add",Arrays.<Object> asList("new Date(0)","$createdAt"));
        return new org.bson.Document("mongoTimestamp",bdbo);
    }
};

但是新的Date(0)部分作为字符串“ new Date(0)”发送,而不是普通的新Date(0)

我正在使用Mongo 3.2.5,并且无法升级到Mongo 4。

lgl26 回答:如何从Spring发送新的Date(0)作为表达式到mongodb

您可以使用new Date()的{​​{1}}对象,并将其在查询中传递,如下所示。

java.util.Date

有关更多详细信息,请检查github上的链接:https://github.com/deftlabs/mongodb-examples/blob/master/mongo-java-date-test/src/main/com/deftlabs/tests/mongo/DateTest.java

或者在另一个stackoverflow问题上:Java/MongoDB query by date

本文链接:https://www.f2er.com/3047727.html

大家都在问