Puedes escribir documentos de filtro de MongoDB en la barra de query para mostrar solo los documentos que coincidan con los criterios especificados. Para aprender más sobre cómo consultar documentos, ver Query documentos en el manual de MongoDB.
Compatibilidad
Puedes consultar tus datos para implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
MongoDB Enterprise: La versión autogestionada basada en suscripción de MongoDB
Comunidad MongoDB: La versión de código abierto, gratuita y autogestionada de MongoDB.
Para obtener más información sobre cómo consultar tus datos para implementaciones alojadas en MongoDB Atlas, consulta Busca documentos específicos.
Establece un filtro de query
En el Filter campo, introduzca un documento de filtro entre las llaves. Puede utilizar todos los operadores del query de MongoDB excepto el Operadores
$texty$expr.Ejemplo
El siguiente filtro devuelve documentos que tienen un valor de
titledeJurassic Park:{ "title": "Jurassic Park" } Haz clic en Find para ejecutar el query y ver los resultados actualizados.
haga clic para ampliar
Nota
Limitaciones de enteros grandes
Para query enteros mayores que el tamaño máximo de enteros de JavaScript, envuelva el entero en caracteres string y pase el entero al constructor NumberLong().
Por ejemplo, para encontrar todos los documentos con un valor number de 507550989629521900, utiliza este filtro de query:
{ "number" : NumberLong("507550989629521900") }
Ejemplos
Los ejemplos en esta página utilizan un pequeño conjunto de datos de ejemplo. Para importar los datos de muestra en la implementación de MongoDB, se deben seguir estos pasos:
Copie los siguientes documentos en su portapapeles:
[ { "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }, { "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } }, { "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } } ] En Compass, utiliza el panel de navegación izquierdo para seleccionar la base de datos y la colección a la que deseas importar los datos.
Haz clic en la pestaña Documents.
Haga clic en Add Data y seleccione Insert Document.
Establece el parámetro View en JSON (
{}).Se deben pegar los documentos JSON del portapapeles en el modal.
Haga clic en Insert.
Nota
Si no tienes una implementación de MongoDB o si deseas consultar una muestra de conjunto de datos más grande, consulta Datos de muestra para clústeres de Atlas a fin de obtener instrucciones sobre cómo crear un clúster de nivel gratuito con datos de muestra. En el siguiente ejemplo, se establece un filtro de query en los documentos de muestra proporcionados en esta página.
Coincidencia por una única condición
El siguiente filtro de query busca todos los documentos donde el valor de name es "Andrea Le":
{ name: "Andrea Le" }
El query devuelve el siguiente documento:
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
Coincidencia por múltiples condiciones ($and)
El siguiente filtro de query busca todos los documentos donde el arreglo scores contiene el valor 75 y el name es Greg Powell:
{ $and: [ { scores: 75, name: "Greg Powell" } ] }
El query devuelve el siguiente documento:
{ "_id": { "$oid":"5a9427648b0beebeb69579cf" }, "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } }
Coincidencia por múltiples condiciones posibles ($or)
El siguiente filtro de consulta utiliza el operador para encontrar documentos $or donde version es 4 name o Andrea Le es:
{ $or: [ { version: 4 }, { name: "Andrea Le" } ] }
La query devuelve los siguientes documentos:
[ { "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }, { "_id": { "$oid":"5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } } ]
Coincidencia por exclusión ($not)
El siguiente filtro de consulta utiliza el operador para encontrar todos los documentos donde el valor $not del name campo no es igual a "Andrea Le" o el name campo no existe:
{ name: { $not: { $eq: "Andrea Le" } } }
La query devuelve los siguientes documentos:
[ { "_id": { "$oid":"5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } }, { "_id": { "$oid":"5a9427648b0beebeb69579cf" }, "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } } ]
Tip
Para obtener una lista completa de operadores lógicos del query, consulta Operadores lógicos del query.
Coincidencia con operadores de comparación
El siguiente filtro de consulta utiliza el operador para encontrar todos los documentos $lte donde version sea menor o igual 4 que:
{ version: { $lte: 4 } }
La query devuelve los siguientes documentos:
[ { "_id": { "$oid":"5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } }, { "_id": { "$oid":"5a9427648b0beebeb69579cf" }, "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } } ]
Tip
Para obtener una lista completa de operadores de comparación, consulta Operadores del query de comparación.
Coincidencia por fecha
El siguiente filtro de consulta utiliza el $gt operador y Date el método para encontrar todos los documentos donde el dateCreated valor del campo sea posterior al 31 de junio 22de2000 2012:
{ dateCreated: { $gt: new Date('2000-06-22') } }
La query devuelve los siguientes documentos:
[ { "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }, { "_id": { "$oid": "5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } } ]
Coincidencia por condiciones de arreglos
El siguiente filtro de consulta utiliza el operador para encontrar todos los documentos donde al menos un valor en $elemMatch la scores matriz sea mayor que 80 y menor 90 que:
{ scores: { $elemMatch: { $gt: 80, $lt: 90 } } }
El query devuelve el siguiente documento porque uno de los valores del arreglo scores es 85:
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
Para obtener más ejemplos de query, consulta Busca documentos en el manual de MongoDB.
Coincidencia por Subcadena
El siguiente filtro de consulta utiliza el operador para encontrar todos los documentos donde el valor $regex de email incluye el término "andrea_le":
{ email: { $regex: "andrea_le" } }
El query devuelve el siguiente documento:
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
Coincidencia por campo incrustado
El siguiente filtro de query encuentra el documento con el subcampo school.name de “Northwestern”:
{ "school.name": "Northwestern" }
El query devuelve el siguiente documento:
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
Para obtener más ejemplos de query, consulta Busca documentos en el manual de MongoDB.
Coincidencia por campo y valor específico
Si un documento contiene un campo y un valor específicos al cual quieres que tu query coincida, puedes hacer clic derecho en el campo deseado y seleccionar Add to query del menú desplegable:

Esto añade una cláusula que coincide con el campo y su valor específico a la barra de query. En el ejemplo anterior, Compass añade una query que coincide con { runtime: 72 }.
Si no has definido una query, Compass crea una en la barra de las query.
Tipos de datos admitidos en la barra de query
El Filter Compass soporta el uso de la representaciónmongosh de los tipos de datos BSON de los JSON extendidos de MongoDB.
Ejemplo
El siguiente filtro devuelve documentos donde start_date es mayor que el BSON Date 2017-05-01:
{ "start_date": {$gt: new Date('2017-05-01')} }
Al especificar el tipo Date tanto en start_date como en el operador de comparación $gt, Compass realiza la comparación greater
than cronológicamente y devuelve documentos cuya start_date es posterior a 2017-05-01.
Sin la especificación del tipo Date, Compass compara los start_dates como cadenas lexicográficamente, en lugar de comparar los valores cronológicamente.
Borra el query
Para borrar la barra de query y los resultados del query, haz clic en Reset.
Colecciones de queries con datos UTF8 no válidos
Si intentas hacer un query o exportar datos con caracteres UTF8 no válidos, aparece el siguiente mensaje de error:
Invalid UTF-8 string in BSON document.
Para hacer un query o exportar estos datos, establece la opción URI enableUtf8Validation en false para desactivar la validación UTF8.
Advertencia
Si se editan datos con enableUtf8Validation=false pueden perderse datos. Este enfoque es una solución temporal para consultar o exportar datos únicamente.
El siguiente URI desactiva la validación de UTF8:
mongodb://localhost:27017/?enableUtf8Validation=false
Nota
También puede desactivar esta opción en la
Opciones de conexión avanzadas seleccionando enableUtf8Validation e false ingresando.
¿Cómo se compara la query de Compass con las queries de MongoDB y SQL?
$filter corresponde a la WHERE cláusula en un
SQL SELECT declaración.
Ejemplo
Hay 3235 artículos. Al usuario le gustaría ver todos los artículos que escribió Joe Bloggs.
- Opción de filtro de Compass
{ author : { $eq : "Joe Bloggs" } } - Agregación de MongoDB
db.article.aggregate( { $match: { "author": "Joe Bloggs" } } ) - SQL
SELECT * FROM article WHERE author = "Joe Bloggs";
