Problem: Suppose we have a collection and one field is type string contains some
special character (like !@#$%) and we don’t want these special characters.
Solution: We can easily remove the special
character from the field using the script “replace(/[^a-zA-Z 0-9 ]/g, '')” in our
query. How can we remove special
character from string using this script please see the following example?
Example: Suppose we have a collection
“EduSurvey “where we are collecting information from institutions.
{Name:"JB
institute”, About:"This is good one collage for MBA", Information:"This
$%%institute ##has good faculty etc$$"}
{Name:"MK
institute”, About:"This is good one collage for MCA", Information:"This$$%#
is the dummy text12"}
{Name:"MG
institute”, About:"This is good one collage for B,Tech", Information:"This#
institute@ has&* good infrastructure"}
|
Did you
notice Information fields contain some special character so we need to remove these special characters.
Query to remove special character
from string in mongodb
db.getCollection('EduSurvey').aggregate([
{ $project : { Name : 1 , About : 1,Information:1 } } ])
.forEach(function(doc,Index)
{doc.Information=doc.Information.replace(/[^a-zA-Z 0-9 ]/g, '');
db.EduSurvey.update({
"_id": doc._id },{ "$set": { "Information":
doc.Information } });});
db.getCollection('EduSurvey').aggregate([
{ $project : { Name : 1 , About : 1,Information:1 } } ])
|
Result:
/* 1
*/
{
"_id" :
ObjectId("579f33954237507d19a1897e"),
"Name" : "JB
institute",
"About" : "This is good
one collage for MBA",
"Information" : "This
institute has good faculty etc"
}
/* 2
*/
{
"_id" :
ObjectId("579f33954237507d19a1897f"),
"Name" : "MK
institute",
"About" : "This is good
one collage for MCA",
"Information" : "This is
the dummy text12"
}
/* 3
*/
{
"_id" : ObjectId("579f33954237507d19a18980"),
"Name" : "MG
institute",
"About" : "This is good
one collage for B,Tech",
"Information" : "This
institute has good infrastructure"
}
|