Consider this simple collection:
{
"_id" : ObjectId("5b6fbcb328d62424ece9265b"),
"name" : "abc"
}
{
"_id" : ObjectId("5b6fbcbd28d62424ece9265c"),
"name" : "cde"
}
I want to add a field hasA which determines there is any 'a' character in name field in an aggregation query, so my expected output should be like this:
{
"_id" : ObjectId("5b6fbcb328d62424ece9265b"),
"name" : "abc",
"hasA" : true
}
{
"_id" : ObjectId("5b6fbcbd28d62424ece9265c"),
"name" : "cde",
"hasA" : false
}
I have tested this aggregation query but it returns wrong output:
$addFields
{
"hasA": { $cond : [ {name : /a/}, true, false ] }
}
output:
{
"_id" : ObjectId("5b6fbcb328d62424ece9265b"),
"name" : "abc",
"hasA" : true
}
{
"_id" : ObjectId("5b6fbcbd28d62424ece9265c"),
"name" : "cde",
"hasA" : true
}
I have tested many data with this query but it seems that it returns always true as result.
{name : /.*a.*/}.