Я хочу найти событие, используя частичную или полную букву.Частичная буква может быть в начале, в середине или в конце события.
Для пример :
Событие: вручение приза
Должно отображаться, когда введите: "pri
" (первые буквы) или "giv
" (средние буквы) или "ing
" (последние буквы)
Ниже приводится Event model
const mongoose = require('mongoose');
const EVENT_SCHEMA = mongoose.Schema({
title: { type :String,required: true },
description: { type :String,required: false },
type: { type: String, required: true },
status: { type: String, required: true },
start_datetime: { type: Date, required: true },
end_datetime: { type: Date, required: true },
user_id:{ type:mongoose.Schema.Types.ObjectId,ref : 'User', required: true },
is_deleted:Boolean
},
{
timestamps:true,
});
module.exports = mongoose.model('Event', EVENT_SCHEMA);
Я пытался, но не получилось:
router.get("/event/:user_id", (req, res) => {
const user_id=req.params.user_id;
console.log(user_id);
User_impression.aggregate([
{$match:{"impression_type":"like"}},
{$group: { "_id": "$event_id","user_id":{"$first":"$user_id"},"impression_type":{"$first":"$impression_type"},count: { $sum: 1 }}},
{$lookup: { from: "events", localField: "_id", foreignField: "_id",as: "event_doc"}},
{$lookup: { from: "users", localField: "event_doc.user_id", foreignField: "_id",as: "user_doc"}},
//{$match:{$and :[{"event_doc.is_deleted":false},{"event_doc.public":true},{"event_doc.title":{"$regex": search, "$options": "i"}}]}},
{$project :{"Event_id":"$_id","likes":"$count","impression_type":"$impression_type","user_id":"$user_id","islike":{$cond: { if: { $in: [ "$_id", "$event_doc._id"] }, then: "Yes", else: "No" } },"User_doc":"$user_doc","event_doc":"$event_doc"}},
], function (err, result) {
if (err) {
res.send(
setting.status(validation.NOT_FOUND,"False","No data found",err)
);
}else
{
results=result;
console.log("$_id")
res.send(
setting.status(validation.SHOW,"True","data found",result)
);
}
});
});