I want to get data that equals to question. For some reason it get everything out.
My Schema
userID: String,
questionAdd: [{
question: String,
answer: String,
}],
My code
var test2 = "What fast food chain has the most locations globally?";
await Data.findOne({
questionAdd: {
$elemMatch: {
question: {$regex: test2, $options: 'i'}
}
}
},(err, data)=>{
if(data){
var getData = data.toString();
console.log(getData);
}
})
Please help me!...
I have fix my code, i don't know there any way to get multi result in array object or not, but i change my Schema
userID: String,
question: String,
answer: String
my code after:
let messageArgs1 = args.join(' ');
var outString = messageArgs1.replace(/[`~!@#$%^&()_|+\-=?;'",.<>\{\}\[\]\\\/]/gi, '');
var messageArgs2 = outString.toLowerCase();
var messageArgs = messageArgs2.toLowerCase();
if(messageArgs=="") return message.channel.send("Please type your question!");
await Data.find({
question:{$regex: messageArgs}
},{question: 1, answer: 1, _id:0}, (err, data)=>{
if(!data){
console.log(data);
return message.channel.send(`Nope!`);
}
else{
//do something
}
}).limit(9);
}