小编Nin*_*nad的帖子

如何加快聚合查询?

以下是聚合查询:

[
  {
    "$match": {
      "UserId": {
        "$in": [
          5
        ]
      },
      "WorkflowStartTime": {
        "$gte": ISODate('2015-04-09T00:00:00.000Z'),
        "$lte": ISODate('2015-04-16T00:00:00.000Z')
      }
    }
  },
  {
    "$group": {
      "_id": {
        "Task": "$TaskId",
        "WorkflowId": "$WorkflowInstanceId"
      },
      "TaskName": {
        "$first": "$Task"
      },
      "StartTime": {
        "$first": "$StartTime"
      },
      "EndTime": {
        "$last": "$EndTime"
      },
      "LastExecutionTime": {
        "$last": "$StartTime"
      },
      "WorkflowName": {
        "$first": "$WorkflowName"
      }
    }
  },
  {
    "$project": {
      "_id": 1,
      "LastExecutionTime": 1,
      "TaskName": 1,
      "AverageExecutionTime": {
        "$subtract": [
          "$EndTime",
          "$StartTime"
        ]
      },
      "WorkflowName": 1
    }
  },
  { …
Run Code Online (Sandbox Code Playgroud)

java mongodb aggregation-framework mongo-java-driver

12
推荐指数
1
解决办法
287
查看次数

将 Json 解析为 DBObject

我有一个REST消耗“ test/plain ”的服务,基本上我收到的字符串是一个JSON字符串,我有以下代码来解析该JSON字符串DBObject,以便我可以将其保存到MongoDB.

@Timed
@POST
@Consumes("text/plain")
@Produces(MediaType.APPLICATION_JSON)
public Response insertscreenview(String message) {
    // System.out.println(message);
    final Logger logger = LoggerFactory.getLogger(ScreenviewResource.class);
    logger.info("Screenview Insert Request Recieved" + "\n" + message);
    screenviewInstance = new Screenview();
    tracInfoInstance = new TracInfo();
    BasicDBObject ageRangeId;
    GeoCheckManager geoCheckInstance = new GeoCheckManager();
    boolean brCheck;        
    try {
        ObjectMapper mapper = new ObjectMapper();
        JsonNode actualObj = mapper.readTree(message);

        System.out.println(message);

        DBObject objInstance = (DBObject)JSON.parse(message);
 ...}
Run Code Online (Sandbox Code Playgroud)

我的JSON字符串如下所示

{
"Screenview": {
    "TracInfo": null,
    "Id": …
Run Code Online (Sandbox Code Playgroud)

java json mongodb

5
推荐指数
1
解决办法
7380
查看次数

从MongoDB中的一个查询中获取多个字段数?

我有一系列事件,其结构如下:

{
    "_id" : ObjectId("537b3ff288f4ca2f471afcae"),
    "Name" : "PREMISES MAP DELETED",
    "ScreenName" : "AccessPointActivity",
    "Timestamp" : NumberLong("1392113758000"),
    "EventParams" : "null",
    "TracInfo" : {
            "ApplicationId" : "fa41f204bfc711e3b9f9c8cbb8c502c4",
            "DeviceId" : "2_1VafJVPu4yfdbMWO1XGROjK6iQZhq4hAVCQL837W",
            "UserId" : "pawan",
            "SessionId" : "a8UHE16mowNwNGyuLXbW",
            "WiFiAP" : "null",
            "WiFiStrength" : 0,
            "BluetoothID" : "null",
            "BluetoothStrength" : 0,
            "NetworkType" : "null",
            "NetworkSubType" : "null",
            "NetworkCarrier" : "Idea",
            "Age" : 43,
            "Gender" : "Female",
            "OSVersion" : "16",
            "Manufacturer" : "samsung",
            "Resolution" : "600*976",
            "Platform" : "Android",
            "Latitude" : 40.42,
            "Longitude" : -74,
            "City" …
Run Code Online (Sandbox Code Playgroud)

java performance mapreduce mongodb aggregation-framework

1
推荐指数
1
解决办法
1703
查看次数