El campo de verificación contiene una cadena en MongoDB
-
Usar
regex
en MongoDB - Comprobar si el campo contiene una cadena en MongoDB
- Comprobar si el campo contiene una cadena (sin distinción entre mayúsculas y minúsculas)
- Comprobar si el campo contiene una cadena (sin resultado)
- Comprobar si el campo contiene una cadena inicial específica
- Comprobar si el campo contiene una cadena final específica
Esta publicación aborda cómo usar expresiones regulares en MongoDB para determinar si un campo contiene una cadena o no.
Usar regex
en MongoDB
La expresión regular (regex
) es una cadena de texto que define un patrón de búsqueda. Varios motores de regex
están escritos con una sintaxis ligeramente diferente, pero los fundamentos son los mismos.
Una expresión regex
es una cadena (serie de caracteres) contenida en ambos lados por una sola barra inclinada (/
) como en el siguiente ejemplo.
db.collection.find({
"k": /pattern/
})
Pero actualmente, como la expresión regular de shell no funciona en la consulta de mongoplayground.net,
, puede usar la expresión que se proporciona a continuación.
db.collection.find({
"k": {
"$regex": "pattern"
}
})
El operador $regex
en MongoDB se usa para encontrar una consulta que contiene una cadena. MongoDB le permite usar una expresión regular
para buscar un patrón en una cadena a través de una consulta.
El operador $regex
se utiliza para buscar patrones de texto en las consultas, utilizando capacidades de expresión regular.
Sintaxis:
db.collection.find({"k":{$regex:"pattern"}});
Puede mostrar los documentos de esos campos que contienen la cadena de valor que puede pasar en el operador de expresión regular $regex
. Para comprender la sintaxis anterior, puede crear una colección de equipos
con el siguiente documento.
db={
"teams": [
{
team: "Manchester City ",
position: "1st",
points: 70
},
{
team: "Liverpool",
position: "2nd",
points: 69
},
{
team: "Chelsea",
position: "3rd",
points: 59
},
{
team: "Arsenal",
position: "4th",
points: 54
},
{
team: "Tottenham",
position: "5th",
points: 51
},
{
team: "Manchester United",
position: "6th",
points: 50
},
]
}
Comprobar si el campo contiene una cadena en MongoDB
Puede usar el siguiente código para verificar si algún documento contiene la cadena Hombre
en el campo del equipo.
Consulta:
db.teams.find({
team: {
"$regex": "Man"
}
})
Producción :
[
{
"_id": ObjectId("5a934e000102030405000000"),
"points": 70,
"position": "1st",
"team": "Manchester City "
},
{
"_id": ObjectId("5a934e000102030405000005"),
"points": 50,
"position": "6th",
"team": "Manchester United"
}
]
Comprobar si el campo contiene una cadena (sin distinción entre mayúsculas y minúsculas)
Puede usar regex
en MongoDB para verificar si un campo contiene un valor de cadena específico que no distingue entre mayúsculas y minúsculas. Use la opción $i
con una expresión regular en MongoDB.
La opción $i
lo ayudará a encontrar campos con valores de cadena especificados en minúsculas y mayúsculas.
Consulta:
db.teams.find({
team: {
"$regex": "MAN",
"options": "$i"
}
})
Producción :
[
{
"_id": ObjectId("5a934e000102030405000000"),
"points": 70,
"position": "1st",
"team": "Manchester City "
},
{
"_id": ObjectId("5a934e000102030405000005"),
"points": 50,
"position": "6th",
"team": "Manchester United"
}
]
Comprobar si el campo contiene una cadena (sin resultado)
Si un campo no contiene la cadena específica que buscó, recibirá “no se encontró ningún documento”. Por ejemplo, suponga que está utilizando la siguiente consulta.
Consulta:
db.teams.find({
team: {
"$regex": "Wolves"
}
})
Producción :
no document found
Dado que ningún documento contiene la cadena Lobos
en el nombre del equipo, obtendrá el resultado no se encontró ningún documento
.
Comprobar si el campo contiene una cadena inicial específica
Usaremos expresiones regulares en MongoDB para examinar si un campo comienza con un valor de cadena específico.
Consulta:
db.teams.find({
team: {
"$regex": "^C"
}
})
Producción :
[
{
"_id": ObjectId("5a934e000102030405000002"),
"points": 59,
"position": "3rd",
"team": "Chelsea"
}
]
Ha encontrado con éxito un documento que comienza con la letra "C"
con la ayuda de regex
en MongoDB.
Comprobar si el campo contiene una cadena final específica
Verifiquemos si un campo termina con un valor de cadena especificado en este ejemplo.
Consulta:
db.teams.find({
team: {
"$regex": "l$"
}
})
Producción :
[
{
"_id": ObjectId("5a934e000102030405000001"),
"points": 69,
"position": "2nd",
"team": "Liverpool"
},
{
"_id": ObjectId("5a934e000102030405000003"),
"points": 54,
"position": "4th",
"team": "Arsenal"
}
]
Ha encontrado dos documentos que terminan con la letra "l"
con la ayuda de regex
en MongoDB.
A través de este artículo, ha aprendido ejemplos de diferentes métodos usando $regex
en MongoDB para verificar si un campo contiene una cadena o no.