db.collection.aggregate([
{
$match: {
"Phone Number": "9585290750",
"services": { $regex: "/^t/", $options: "s i" }
}
},
{
$project: {
"Services": "services"
}
}
]);
预期输出:与“服务”字段中的搜索框中的特定字符串匹配的整个数据。
services
我在上面的集合中的正则表达式部分遇到问题,'1 23:59:58'
是一个数组字段。请帮我过滤数据。
答案 0 :(得分:0)
这是因为您将一个JavaScript正则表达式对象的字符串传递给$regex
。将正则表达式更改为以下之一。
"service": { "$regex": /^t/, "$options": "si" }
或
"service": { "$regex": "^t", "$options": "si" }
答案 1 :(得分:0)
伙计们,因为我是Mongodb的新手,我花了一天的时间才找到适当的解决方案。我有一个问题的解决方案。如果你们有比这更好的查询,只需发布或修改它....
db.collections.aggregate([
{"$match":{"Corporate_ID":"id"}},
{"$unwind":"$services"},
{"$match":{"$or":[
{"services.type":{$regex:'TRXF2016088142',"$options": "i"}},
{"services.timeSpent":{$regex:'TRXF2016088142',"$options": "i"}},
{"services.trxID":{$regex:'TRXF2016088142',"$options": "i"}},
{"services.CustomerQuery":{$regex:'F',"$options": "i"}},
{"services.ServiceProvided":{$regex:'F',"$options": "i"}},
{"services.Category":{$regex:'F',"$options": "i"}},
{"services.callTime":{$regex:'TRXF2016088142',"$options": "i"}},
{"services.ActualAmount":{$regex:'TRXF2016088142',"$options": "i"}},
{"services.FinalAmount":{$regex:'TRXF2016088142',"$options": "i"}},
{"services.DiscountRuppes":{$regex:'TRXF2016088142',"$options": "i"}},
{"services.DiscountPerctange":{$regex:'TRXF2016088142',"$options": "i"}}
]}},
{"$unwind":"$services"},
{"$project":{
"service":"$services"}
}
])