Flujo de búsqueda en MERN Stack
En primer lugar, intenté buscar mucho pero no puedo encontrar ningún recurso que satisfaga mis necesidades. Sé que puede haber algunas respuestas ya, si conoces alguna, por favor ayúdame con el enlace.
Sé cómo mostrar sugerencias de búsqueda, pero no sé cómo mostrar resultados de búsqueda completos cuando alguien hace clic en una sugerencia de búsqueda. ¿Cómo se hace eso en el stack MERN con un ejemplo si es posible?
Necesito una solución que se ajuste mejor a mi escenario:
Tengo tres modelos:
- tags: contiene etiquetas
- categories: contiene categorías
- items: contiene datos de los elementos, tiene tanto categorías como etiquetas. Actualmente, no estoy almacenando referencias a las tablas de categorías y etiquetas, sino que las estoy almacenando directamente dentro de los elementos.
Ahora, básicamente quiero buscar los elementos que tienen categorías y etiquetas específicas cuando alguien busca una palabra clave.
Lo que estoy haciendo actualmente es buscar las etiquetas que coinciden con la palabra clave, luego las categorías, luego sacar sus _id(s) y encontrarlos en la colección de elementos.
const tags = await Tags.find(
{ tag: { $regex: category.toString(), $options: "i" } },
{ projection: { createdBy: 0 } }
);
const categories = await Categories.find(
{ category: { $regex: category.toString(), $options: "i" } },
{ projection: { createdBy: 0 } }
);
const tagsIdArray = tags.map((item) => new ObjectId(item._id));
const catIdArray = categories.map((item) => new Object(item._id));
$match: {
$and: [
{
$or: [
{ "tags._id": { $in: [...tagsIdArray] } },
{ "category._id": { $in: [...catIdArray] } },
],
},
],
},
Y sé que esta no es la mejor manera, y lleva mucho tiempo buscar una palabra clave específica.
Por favor, sugiéreme una estructura de esquema y una forma de implementar la búsqueda con sugerencias.
davy.ai
Solución para implementar búsqueda con sugerencias en MERN Stack
Para implementar la búsqueda con sugerencias en MERN stack, puedes seguir el siguiente enfoque:
1. Estructura del esquema
Esto simplificará tu consulta de búsqueda y la hará más eficiente. Tu esquema de elementos debería lucir así:
2. Búsqueda de texto completo usando Mongoose y MongoDB Atlas
3. Sugerencias de búsqueda