首页 > 解决方案 > 如何计算所有手机号码在mongo查询中的收费次数

问题描述

谁能帮我查询一个手机号码的收费次数。

以下是我的一份文件:

{
        "_id" : ObjectId("5cd010da44ad615a97e3e8ef"),
        "_class" : "com.mongo.docs.OCSMongoLog",
        "jsonObject" : {
                "MobileNumber" : "9711202573",
                "microOperationName" : "Deduct amount from user balance.",
                "moduleName" : "OCS",
                "responseRaw" : "<DirectDebitUnitResp><ConversationID>10129190428111</ConversationID><TransactionID>5602870273</TransactionID><Amount>1</Amount>
                </DirectDebitUnitResp>",
                "operationName" : "Direct Debit",
                "id" : 114,
                "createDate" : "2019-05-06 15:21:18.296",
                "requestRaw" : "DebitBalance [conversationId=1012019875615211751, transactionId=, originatingAddress=9711202573, destinationAddress=9711202573, 
                chargingAddress=9711202573, amount=1]"
        }
}

在上面的文件收费条件是<Amount>1</Amount>字段responseRaw的正则表达式。

我想要一个可以给我这样的查询:

{
"MobileNumber" : "9711202573", "successCount" : "5",
"MobileNumber" : "9723894992", "successCount" : "1",
"MobileNumber" : "9710172139", "successCount" : "3",
"MobileNumber" : "9720205393", "successCount" : "2"
}

我试过这样的事情:

db.oCSMongoLog.aggregate([{$group:{_id:"$jsonObject.MobileNumber", count:{$sum : 1}}},{$match:{'jsonObject.responseRaw':{$regex:'<Amount>1'}}}])

但它没有给出任何输出。

标签: mongodbmongodb-query

解决方案


推荐阅读