【发布时间】:2016-10-14 11:44:08
【问题描述】:
我想操作字符串。 示例:
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}
现在我需要将上面的内容分隔为两个字符串,最后一个 {} 之间的字符串是 mongodb 中的投影,我想要作为单独的字符串说投影。
谁能帮我解决这个问题。
谢谢 萨拉达
【问题讨论】:
-
添加语言标签将增加您获得有用答案的机会。这是java吗?
-
是的,它是java。我想运行mongo查询,在运行之前我需要将字符串作为查询参数分离到一个字符串,将参数返回到一个字符串并将参数排序到另一个字符串。
标签: java string mongodb mongodb-query