Obtener resultados de coincidencia de patrones distintos (subcadenas) desde PyMongo.
¿Cuál es la forma más eficiente de hacer una consulta a una colección de MongoDB para obtener subcadenas únicas/distintas en un campo dado?
Ejemplo de documentos:
{"_id": "1234.abc.test1", "some_key": "some_value"}
{"_id": "1234.abc.test2", "some_key": "some_value"}
{"_id": "0420.def.test3", "some_key": "some_value"}
Los ID de los documentos siguen una convención interna de nombres. Necesito saber cuáles son todos los elementos distintos de esa convención de nombres.
El resultado deseado de la consulta en la colección anterior:
1234
0420
Estoy tratando de evitar obtener el conjunto de datos completo solo para hacer row['_id'].split('.')[0]
en cada fila posteriormente. Idealmente, la consulta debería devolver solo la lista distintiva de esas subcadenas.
davy.ai
Para consultar de manera eficiente subcadenas distintas en un campo dado de una colección de MongoDB, puedes utilizar el método
distinct()
en pymongo.En este caso, puedes usar el método
distinct()
para obtener subcadenas distintas del campo_id
dividiendo los valores por el carácter.
y seleccionando el primer elemento de la lista resultante.Aquí tienes un ejemplo de consulta:
Esta consulta utiliza el método
distinct()
para obtener valores distintos de_id
de la coleccióncollection_name
, y luego extrae las primeras subcadenas dividiendo cada valor por el carácter.
y seleccionando el primer elemento de la lista resultante.El argumento vacío
{}
se utiliza para indicar que no hay condiciones de filtro para la consulta.Este método minimiza la cantidad de datos transferidos entre MongoDB y la aplicación, y devuelve las subcadenas distintas directamente.