mongodb - 如何计算所有手机号码在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'}}}])
但它没有给出任何输出。
解决方案
推荐阅读
- javascript - Fetch API 总是返回一个 Promise
- javascript - rxjs 示例运算符问题
- c# - Amadeus Fare_PricePnrWithBookingClass 的 OB 费用请求
- ms-access - MS Access SQL:如何查询,下一小时的第一行减去一小时的第一行数据
- linux - grep 从文件中获取模式,但不仅打印整个匹配词
- python - 我在使用基本 Python 语法时遇到问题
- stl - 使用自定义比较器设置的 C++ STL
- c# - 在c#中查看Pdf文件或任何其他文件的二维码
- r - R:求和时的错误?
- python - 训练测试拆分以确保所有类别都包含在训练集中