Estoy buscando un operador, que me permita verificar si el valor de un campo contiene una cadena determinada.
Algo como:
db.users.findOne({$contains:{"username":"son"}})
¿Es eso posible?
Puedes hacerlo con el siguiente código.
db.users.findOne({"username" : {$regex : ".*son.*"}});
db.users.findOne({"username" : {$regex : "son"}});
Como Mongo shell admite regex, eso es completamente posible.
Si queremos que la consulta no distinga entre mayúsculas y minúsculas, podemos usar la opción "i", como se muestra a continuación:
Ver: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions
fuente
db.users.findOne({"username" : /.*son.*/});
que también podría ser exagerado y la expresión regular podría ser simple/son/
{ username: /son/ }
https://docs.mongodb.com/manual/reference/sql-comparison/
http://php.net/manual/en/mongo.sqltomongo.php
MySQL
MongoDB
fuente
A partir de la versión 2.4, puede crear un índice de texto en los campos para buscar y usar el operador $ text para realizar consultas.
Primero, cree el índice:
db.users.createIndex( { "username": "text" } )
Luego, para buscar:
db.users.find( { $text: { $search: "son" } } )
Puntos de referencia (~ 150K documentos):
Notas:
db.collection.createIndex( { "$**": "text" } )
.fuente
Como este es uno de los primeros éxitos en los motores de búsqueda, y ninguno de los anteriores parece funcionar para MongoDB 3.x, aquí hay una búsqueda de expresiones regulares que funciona:
No es necesario crear un índice adicional o similar.
fuente
Esto es lo que debe hacer si está conectando MongoDB a través de Python
También puede usar un nombre de variable en lugar de 'Hijo' y, por lo tanto, la concatenación de cadenas.
fuente
.*${value}.*
}La forma más sencilla de realizar esta tarea
Si desea que la consulta distinga entre mayúsculas y minúsculas
Si desea que la consulta no distinga entre mayúsculas y minúsculas
fuente
respuesta ideal su índice de uso i opción para mayúsculas y minúsculas
fuente
Esto debería hacer el trabajo
El
i
solo está allí para evitar restricciones de coincidencia de casos individuales de letras.Puede consultar la documentación de $ regex en la documentación de MongoDB. Aquí hay un enlace: https://docs.mongodb.com/manual/reference/operator/query/regex/
fuente
Cómo ignorar las etiquetas HTML en una coincidencia RegExp:
Probablemente sea muy fácil convertirlo en un filtro de agregación MongoDB.
fuente