Puede escribir "Filtro de documentos de MongoDB" en la barra de consulta para mostrar solo los documentos que coincidan con los criterios especificados. Para obtener más información sobre cómo consultar documentos, consulte Consultar 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 basada en suscripción y autogestionada de MongoDB
MongoDB Community: la versión de MongoDB con código fuente disponible, gratuita y autogestionada
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 En el campo, introduzca un documento de filtro entre las llaves. Puede usar todos los operadores de consulta 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 query utiliza el operador $or para buscar documentos donde version sea 4, o name sea Andrea Le:
{ $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 query utiliza el operador $not para buscar todos los documentos donde el valor del campo name no sea igual a "Andrea Le", o el campo name no exista:
{ 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 query utiliza el operador $lte para buscar todos los documentos donde version sea menor o igual a 4:
{ 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 query utiliza el operador $gt y el método Date() para buscar todos los documentos donde el valor del campo dateCreated sea posterior al 22 de junio del 2000:
{ 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 query utiliza el operador $elemMatch para buscar todos los documentos donde al menos un valor en el arreglo scores sea mayor que 80 y menor que 90:
{ 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 query utiliza el operador $regex para buscar todos los documentos donde el valor de email incluya 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 Date especificación de tipo, 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 puedes desactivar esta opción en el
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 una
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";
