Java 创建多个MongoDB查询的Spring数据聚合

Java 创建多个MongoDB查询的Spring数据聚合,java,spring,mongodb,Java,Spring,Mongodb,数据库MongoDB I以以下格式存储文档: { "achievement": [ { "userFromId":"max", "userToId":"peter", "date":"2016-01-25", "pointCount":1, "description":"good work", "type":"THANKS"

数据库MongoDB I以以下格式存储文档:

    {
      "achievement": [
        {
          "userFromId":"max",
          "userToId":"peter",
          "date":"2016-01-25",
          "pointCount":1,
          "description":"good work",
          "type":"THANKS"
        }
      ]
    }
如何获取数据库中某一特定日期的记录数(如果有),在该日期中,人们感谢其他人。 我创建了一个查询来检索数据:

    DBObject clause1 = new BasicDBObject("userFromId", userFromId);
    DBObject clause2 = new BasicDBObject("userToId", userToId);
    DBObject clause3 = new BasicDBObject("sendDate", localDate);
    DBObject clause4 = new BasicDBObject("type", Thanks);
    BasicDBList or = new BasicDBList();
    or.add(clause1);
    or.add(clause2);
    or.add(clause3);
    or.add(clause4);
    DBObject query = new BasicDBObject("$or", or);
但我不知道如何获得记录的数量,以及如何使用聚合重写查询? 例如:

        Aggregation aggregation = Aggregation.newAggregation(
            Aggregation.group("userFromId")
                .first("userFromId").as("userFromId")
                .sum("pointCount").as("pointCount"));
我不知道如何添加更多的参数。 如果数据库中的数据不存在,返回请求是什么


感谢您的帮助

您可以使用类似的工具。这将统计符合以下条件的所有文档数

常规查询

db.collection.count({ $or: [ { "userFromId": userFromId }, { "userToId": userToId } ] });
使用聚合

db.collection.aggregate( [
  { $match: { $or: [ { "userFromId": userFromId }, { "userToId": userToId } ] } },
  { $group: { _id: null, count: { $sum: 1 } } }
] );

你可以用这样的东西。这将统计符合以下条件的所有文档数

常规查询

db.collection.count({ $or: [ { "userFromId": userFromId }, { "userToId": userToId } ] });
使用聚合

db.collection.aggregate( [
  { $match: { $or: [ { "userFromId": userFromId }, { "userToId": userToId } ] } },
  { $group: { _id: null, count: { $sum: 1 } } }
] );

你能添加预期的输出吗?为什么要使用聚合?我需要通过列表检查true或false,然后检查集合中是否有数据。是否可以添加预期的输出?为什么要使用聚合?我需要检查true或false(我想通过列表进行检查),然后检查集合中是否有数据。当您尝试寻求聚合时,查询生成错误消息:ReferenceError:userFromId not defined。告诉我我做错了什么?
userFromId
userToId
是输入值。用输入值替换它们。您应该在mongo shell中运行上述查询。对不起,这是我的错。谢谢你的耐心别担心。很乐意提供帮助。当您尝试寻求聚合时,查询会生成错误消息:ReferenceError:userFromId未定义。告诉我我做错了什么?
userFromId
userToId
是输入值。用输入值替换它们。您应该在mongo shell中运行上述查询。对不起,这是我的错。谢谢你的耐心别担心。很乐意帮忙。