How can I use 'Not Like' operator in MongoDB?


For this, use the $not operator in MongoDB. To understand the concept, let us create a collection with the document. The query to create a collection with a document is as follows −

> db.notLikeOperatorDemo.insertOne({"StudentName":"John Doe"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a29c393b406bd3df60dfc")
}
> db.notLikeOperatorDemo.insertOne({"StudentName":"John Smith"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a29cc93b406bd3df60dfd")
}
> db.notLikeOperatorDemo.insertOne({"StudentName":"John Taylor"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a29df93b406bd3df60dfe")
}
> db.notLikeOperatorDemo.insertOne({"StudentName":"Carol Taylor"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a2a1693b406bd3df60dff")
}
> db.notLikeOperatorDemo.insertOne({"StudentName":"David Miller"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a2a2693b406bd3df60e00")
}

Display all documents from a collection with the help of find() method. The query is as follows −

> db.notLikeOperatorDemo.find().pretty();

The following is the output −

{ "_id" : ObjectId("5c8a29c393b406bd3df60dfc"), "StudentName" : "John Doe" }
{
   "_id" : ObjectId("5c8a29cc93b406bd3df60dfd"),
   "StudentName" : "John Smith"
}
{
   "_id" : ObjectId("5c8a29df93b406bd3df60dfe"),
   "StudentName" : "John Taylor"
}
{
   "_id" : ObjectId("5c8a2a1693b406bd3df60dff"),
   "StudentName" : "Carol Taylor"
}
{
   "_id" : ObjectId("5c8a2a2693b406bd3df60e00"),
   "StudentName" : "David Miller"
}

Here is the query to use NOT LIKE operator in MongoDB −

> db.notLikeOperatorDemo.find( { StudentName: { $not: /^John Taylor.*/ } } );

The following is the output −

{ "_id" : ObjectId("5c8a29c393b406bd3df60dfc"), "StudentName" : "John Doe" }
{ "_id" : ObjectId("5c8a29cc93b406bd3df60dfd"), "StudentName" : "John Smith" }
{ "_id" : ObjectId("5c8a2a1693b406bd3df60dff"), "StudentName" : "Carol Taylor" }
{ "_id" : ObjectId("5c8a2a2693b406bd3df60e00"), "StudentName" : "David Miller" }
You can use the following query also:
> db.notLikeOperatorDemo.find({StudentName: {$not: /John Taylor/}});
The following is the output:
{ "_id" : ObjectId("5c8a29c393b406bd3df60dfc"), "StudentName" : "John Doe" }
{ "_id" : ObjectId("5c8a29cc93b406bd3df60dfd"), "StudentName" : "John Smith" }
{ "_id" : ObjectId("5c8a2a1693b406bd3df60dff"), "StudentName" : "Carol Taylor" }
{ "_id" : ObjectId("5c8a2a2693b406bd3df60e00"), "StudentName" : "David Miller" }

Updated on: 30-Jul-2019

714 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements