无法使用mongoDB的聚合功能收集手机号码
我正在尝试使用无法使用mongoDB的聚合功能收集手机号码,mongodb,Mongodb,我正在尝试使用mongodb的aggregate单独收集手机号码。但是我不能 以下是我的示例文档: { "_id" : ObjectId("6065872113ad613ea7975b45"), "_class" : "com.abc.mongo.docs.DCDMongoLog", "jsonObject" : {
mongodb
的aggregate
单独收集手机号码。但是我不能
以下是我的示例文档:
{
"_id" : ObjectId("6065872113ad613ea7975b45"),
"_class" : "com.abc.mongo.docs.DCDMongoLog",
"jsonObject" : {
"keyIdentifier" : "218XXXXXX952",
"microOperationName" : "Deduct amount from user balance.",
"moduleName" : "DCD",
"responseRaw" : "<?xml version=\"1.0\" encoding=\"utf-8\"?><soapenv:Envelope xmlns:soapenv=\"http://schema
s.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema
-instance\"><soapenv:Body><soapenv:Fault><faultcode>S-ACT-00112</faultcode><faultstring>رصيدك
; ت͊ر أԷঁٍ</faultstring><detail><ns1:hostname xmlns:ns1=\"http://xml.apache.org/
axis/\">web06</ns1:hostname></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>",
"operationName" : "Direct Debit",
"id" : null,
"createDate" : "2021-04-01 03:40:09.699",
"requestRaw" : "DebitBalance [conversationId=1012888888803400918, transactionId=, originatingAddress=23332
8673332, destinationAddress=218XXXXXX952, chargingAddress=218XXXXXX952, amount=1000, rbtId=null]"
}
}
{
“_id”:ObjectId(“6065872113ad613ea7975b45”),
“_类”:“com.abc.mongo.docs.DCDMongoLog”,
“jsonObject”:{
“密钥标识符”:“218XXXXXX952”,
“微操作名称”:“从用户余额中扣除金额。”,
“moduleName”:“DCD”,
“应答器AW”:“S-ACT-00112ر;ص;ي;د;ك
&x62A;&x34A;&x631;&x623;&x537;&x981;&5944D;web06“,
“操作名称”:“直接借记”,
“id”:空,
“createDate”:“2021-04-01 03:40:09.699”,
“requestRaw”:“DebitBalance[conversationId=101288888803400918,transactionId=,originatingAddress=23332
8673332,目的地址=218XXXXXX952,记账地址=218XXXXXX952,金额=1000,rbtId=null]“
}
}
我正在使用下面的聚合函数来存储我的新集合中的所有手机号码,即“jsonObject.keyIdentifier”,即“collectionABC”
db.dCDMongoLog.aggregate([{'$group':{'_id': '$jsonObject.keyIdentifier'}},{'$match':{'$and' : [{'jsonObject.responseRaw' : {$regex : '<Amount>1000'}}]}},{$out: "collectionABC"}],,{ allowDiskUse: true })
db.dCDMongoLog.aggregate([{'$group':{'''u id':'$jsonObject.keyIdentifier'},{'$match':{'$and':[{'jsonObject.responseRaw':{$regex:'1000'}}}},{$out:'collectionABC'},{allowDiskUse:true})
如您所见,我还根据文档中是否包含字符串“1000”来过滤文档
但是在这个查询结束后,我得到了collectionABC的0计数
超出我的理解。。哪里出错了?1)您的responseRaw
字段中没有任何1000
字符串,2)交换$group和$match阶段,然后重试。