Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

450
Vistas
Búsqueda de texto completo de nombre de usuario en Meteor.users

Estoy tratando de buscar en la colección de meteor.users por nombre de usuario.

He seguido todos los pasos detallados aquí , pero parece que no puedo hacer que funcione meteor.users .

Aquí está el código que tengo para eso:

Al iniciar el servidor:

 Meteor.startup(function(){ Meteor.users._ensureIndex({ "username":"text", }); });

En mi función de publicación:

 Meteor.publish("Meteor.users.userSearch",function(searchVal){ if(!searchVal){ return Meteor.users.find({}); } return Meteor.users.find({$text:{$search:searchVal}}); });

En el cliente:

 Template.foo.helpers({ users(){ var searchValue = Session.get('searchVal'); Meteor.subscribe('Meteor.users.userSearch',searchValue); return Meteor.users.find({}); } });

¿Puede alguien ayudarme a averiguar qué está mal con lo anterior?

Cuando no hay searchValue , funciona correctamente y se devuelven todos los usuarios. Tan pronto como haya algún valor de búsqueda, no se devolverá ningún usuario.

También probé directamente en la consola db.users.find({$text:{$search:"some_test"}}) y nuevamente no se devolvió ningún objeto de colección.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

No necesita realizar una búsqueda de texto completo si solo desea buscar el valor de un solo campo (nombre de username en este caso). Usar el comando de find normal con el valor Regex como valor de búsqueda es mejor en este caso:

 Meteor.users.find({ username: new RegExp('user1', 'gi'), });
over 4 years ago · Santiago Trujillo Denunciar

0

asegurarIndex: en desuso desde la versión 3.0.0 : db.collection.ensureIndex() ahora es un alias para db.collection.createIndex( ).

_ensureIndex parece ser huérfano.

 Meteor.startup(function(){ Meteor.users.createIndex({ "username":"text" }); });
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda