我想操纵String。 例如:
RegistrationRequest.find({ 'serviceRequest.serviceRequestSubtype.masterCode': 'RETPOSTREG', $and: [ { 'serviceRequest.serviceRequestStatus.masterCode': 'COMPLETED' }, { $and: [ { 'serviceRequest.customer.services.service.0.serviceDetails.serviceStatus.masterCode': 'ACT' }, { $and: [ { 'serviceRequest.customer.services.service.0.serviceDetails.technology.masterCode': 'GSM' } ] } ] } ] }, {'serviceRequest.customer.profileDetails.basicDetails.customerCode': 1,_id:0}).sort({"serviceRequest.modifiedDate": 1})
我想将上面的内容分成3个字符串
如下所示:
query = { 'serviceRequest.serviceRequestSubtype.masterCode': 'RETPOSTREG', $and: [ { 'serviceRequest.serviceRequestStatus.masterCode': 'COMPLETED' }, { $and: [ { 'serviceRequest.customer.services.service.0.serviceDetails.serviceStatus.masterCode': 'ACT' }, { $and: [ { 'serviceRequest.customer.services.service.0.serviceDetails.technology.masterCode': 'GSM' } ] } ] } ] }
projection = {'serviceRequest.customer.profileDetails.basicDetails.customerCode': 1,_id:0}
sort = {"serviceRequest.modifiedDate": 1}
我能够将排序分类如下 - 排序可能并不总是存在。
if(query.contains("sort"))
{
String sortParams = query.substring(query.lastIndexOf(".")+1, query.lastIndexOf(")")-1);
}
获得了其他价值
String parseQuery = query.substring(query.indexOf("(")+1, query.lastIndexOf(".")-2);
现在parseQuery有字符串:
{ 'serviceRequest.serviceRequestSubtype.masterCode': 'RETPOSTREG', $and: [ { 'serviceRequest.serviceRequestStatus.masterCode': 'COMPLETED' }, { $and: [ { 'serviceRequest.customer.services.service.0.serviceDetails.serviceStatus.masterCode': 'ACT' }, { $and: [ { 'serviceRequest.customer.services.service.0.serviceDetails.technology.masterCode': 'GSM' } ] } ] } ] }, {'serviceRequest.customer.profileDetails.basicDetails.customerCode': 1,_id:0}
现在我需要将上面的内容分成两个字符串,last {}之间的字符串是mongodb中的投影,我想将其作为单独的字符串说投影。
任何人都可以帮助我。
由于 Sarada
答案 0 :(得分:-1)
我能够操纵字符串。 以下是代码:
DispatchQueue.global(qos: .userInitiated).async
{
self.present(self.imagePicker, animated: true, completion: nil)
}
例如: - 实际上查询:
String sortParams="";
String findParams = "";
String returnParams="";
//if sort is there then this keyword will be there
String sortStr = "sort";
//if return params exist then only the below substring will be there
String retStr="]},{";
//remove extra spaces in the query
query = query.replaceAll(" ", "");
if(query.contains(sortStr))
{
sortParams = query.substring(query.lastIndexOf(sortStr)+5, query.lastIndexOf(")"));
query = query.substring(0, query.lastIndexOf(sortStr)-1);
}
if(query.contains(retStr))
{
returnParams = query.substring(query.lastIndexOf(retStr)+3, query.length()-1);
query = query.substring(0, query.lastIndexOf(retStr)+2)+")";
}
findParams = query.substring(query.indexOf("(")+1, query.length()-1);
在执行if(query.contains(sortStr))语句
之后RegistrationRequest.find({ 'serviceRequest.serviceRequestSubtype.masterCode': 'RETPOSTREG', $and: [ { 'serviceRequest.serviceRequestStatus.masterCode': 'COMPLETED' }, { $and: [ { 'serviceRequest.customer.services.service.0.serviceDetails.serviceStatus.masterCode': 'ACT' }, { $and: [ { 'serviceRequest.customer.services.service.0.serviceDetails.technology.masterCode': 'GSM' } ] } ] } ] }, {'serviceRequest.customer.profileDetails.basicDetails.customerCode': 1,_id:0}).sort({serviceRequest.modifiedDate})
执行if(query.contains(retStr))后执行
sortparams : {'serviceRequest.modifiedDate':1}
Query after sort params removed :RegistrationRequest.find({'serviceRequest.serviceRequestSubtype.masterCode':'RETPOSTREG',$and:[{'serviceRequest.serviceRequestStatus.masterCode':'COMPLETED'},{$and:[{'serviceRequest.customer.services.service.0.serviceDetails.serviceStatus.masterCode':'ACT'},{$and:[{'serviceRequest.customer.services.service.0.serviceDetails.technology.masterCode':'GSM'}]}]}]},{'serviceRequest.customer.profileDetails.basicDetails.customerCode':1,_id:0})
执行最后一个陈述后
returnParams :{'serviceRequest.customer.profileDetails.basicDetails.customerCode':1,_id:0}
Query after return params removed :RegistrationRequest.find({'serviceRequest.serviceRequestSubtype.masterCode':'RETPOSTREG',$and:[{'serviceRequest.serviceRequestStatus.masterCode':'COMPLETED'},{$and:[{'serviceRequest.customer.services.service.0.serviceDetails.serviceStatus.masterCode':'ACT'},{$and:[{'serviceRequest.customer.services.service.0.serviceDetails.technology.masterCode':'GSM'}]}]}]})
由于 Sarada