Docs Menu

$query

On this page

  • Definition
$query
Note
Deprecated since v3.2

Starting in v3.2, the $query operator is deprecated in the mongo shell. In the mongo shell, use cursor methods instead.

The $query operator forces MongoDB to interpret an expression as a query.

The following mongo operations are equivalent, and return only those documents in the collection named collection where the age field equals 25.

db.collection.find( { $query: { age : 25 } } )
db.collection.find( { age : 25 } )

$query is necessary to work with documents that contain a field name query whose value is an embedded document, such as the following document:

{ _id: 1, age: 25, query: { a: 1 } }

The following find operation that does not use the $query operator will return no results:

db.documents.find( { query: { a: 1 } } )

To obtain the document, you will need to use the following query:

db.documents.find( { "$query": { query: { a: 1 } } } )
Tip
See also:

For more information about queries in MongoDB see Query Documents, db.collection.find(), and Getting Started with MongoDB.

Note

Do not mix query forms. If you use the $query format, do not append cursor methods to the find(). To modify the query use the meta-query operators, such as $explain.

Therefore, the following two operations are equivalent:

db.collection.find( { $query: { age : 25 }, $explain: true } )
db.collection.find( { age : 25 } ).explain()

On this page

Give Feedback
MongoDB logo
© 2021 MongoDB, Inc.

About

  • Careers
  • Legal Notices
  • Privacy Notices
  • Security Information
  • Trust Center
© 2021 MongoDB, Inc.