Find documents in mongodb collection where the array field contains specific values
This tutorial guides you to find the documents in mongodb collection where the array field contains specific values using query operations on array fields. Let’s see what mongo provides to perform query on array with example.
Query array field containing element with specific value
To query the documents in mongo collection where array field contains at least one element with the specified values, you need to use the filter { <field>: [<value1>, …] } where <value1> is the element value.
For our example, you can create a sample collection called posts with data using this json. Then try the following commands and check the responses as shown below.
The following example queries all documents where the tags is an array field that contains the string values [“#mongodb”,”#mongo_tutor”,”#tutorials”] and another examples where the tags contains the string values [“#mongodb”,”#mongo_tutor”,”#tutorials”,”#advantages”].
Example 1
> db.posts.find({tags:["#mongodb","#mongo_tutor","#tutorials"]}).pretty(); Response: --------- { "_id" : ObjectId("5063114bd386d8fadbd6b004"), "title" : "MongoDB OverView", "description" : "Overview and Introduction about MongoDB", "by_user" : "mongodb", "url" : "www.docs.mongodb.com", "tags" : [ "#mongodb", "#mongo_tutor", "#tutorials" ], "likes" : 20, "comments" : [ { "user" : "Mishra", "message" : "Nice tutorial", "dateCreated" : ISODate("2011-02-25T02:15:00Z"), "like" : 10 }, { "user" : "Sonam", "message" : "Not completely correct. Partially right.", "dateCreated" : ISODate("2011-02-25T02:15:00Z"), "like" : 12 } ] } { "_id" : ObjectId("5063114bd386d8fadbd6b005"), "title" : "MongoDB OverView 2", "description" : "2 Overview and Introduction about MongoDB", "by_user" : "mongodb", "url" : "www.docs.mongodb.com", "tags" : [ "#mongodb", "#mongo_tutor", "#tutorials" ], "likes" : 30, "comments" : [ { "user" : "Mishra", "message" : "Nice tutorial", "dateCreated" : ISODate("2011-02-25T02:15:00Z"), "like" : 10 }, { "user" : "Sonam", "message" : "Not completely correct. Partially right.", "dateCreated" : ISODate("2011-02-25T02:15:00Z"), "like" : 12 } ] }
Example 2
> db.posts.find({tags:["#mongodb","#mongo_tutor","#tutorials","#advantages"]}).pretty(); Response: --------- { "_id" : ObjectId("5063114bd386d8fadbd6b008"), "title" : "MongoDB Advantages", "description" : "Advantages of MongoDB", "by_user" : "sneppets", "url" : "https://docs.mongodb.com", "tags" : [ "#mongodb", "#mongo_tutor", "#tutorials", "#advantages" ], "likes" : 50, "comments" : [ { "user" : "John", "message" : "Nice tutorial", "dateCreated" : ISODate("2019-02-25T02:15:00Z"), "like" : 10 }, { "user" : "Paul", "message" : "Good one", "dateCreated" : ISODate("2019-02-25T02:15:00Z"), "like" : 12 } ] }
Also See
- How to list all collections from mongo shell ?
- Guide to sort numeric strings as numbers in mongodb
- Drop a mongodb database from mongo shell and command line?