Javascript 尝试搜索特定字符串
我试图根据用户的消息在数据库中找到一行,即:Javascript 尝试搜索特定字符串,javascript,mongodb,mongoose,discord,discord.js,Javascript,Mongodb,Mongoose,Discord,Discord.js,我试图根据用户的消息在数据库中找到一行,即:catalystname 在架构中,我已成功地将给定字符串作为文本索引: const { Schema } = mongoose; const scheduleMessageSchema = new Schema({ _id: { type: Schema.Types.Oid, auto: true }, catalystname: String, catalystdesc: String, catalystques
catalystname
在架构中,我已成功地将给定字符串作为文本索引:
const { Schema } = mongoose;
const scheduleMessageSchema = new Schema({
_id: { type: Schema.Types.Oid, auto: true },
catalystname: String,
catalystdesc: String,
catalystquest: String,
date: String,
});
scheduleMessageSchema.index({catalystname: 'text'});
module.exports = mongoose.model('dbcatalyst', scheduleMessageSchema);
我的搜索代码:
const Catal = require("../src/models/dbcatalyst.js")
module.exports.run = async (client, message, args) => {
message.content = args.slice(0).join(" ")
Catal.find({$text: {$search: message.content}})
.exec(function(docs){
let embedlogs3 = new Discord.RichEmbed()
.setAuthor(`1`, message.author.displayAvatarURL)
.setDescription(`${docs}`)
.setColor("#33ffff")
message.channel.send(embedlogs3)
/*/ ${collected.first().content}/*/
});
}
并开始搜索邮件中所需的行。bot成功地处理了它的任务,但是完整地显示了整个文档,而不是一行
_id: 5e243704961eb23c106bfb02,
catalystname: 'Чёрный Коготь',
catalystdesc: '0',
catalystquest: '0',
date: '1579430157018',
__v: 0
}
我能准确地输出字符串吗
catalystname
查看Mongoose文档,回调似乎需要两个参数:
err
错误或空值docs
返回的文档Catal.find({$text:{$search:message.content})
.exec(函数(错误、文档){
...
});
您应该会收到一系列匹配的文档。欢迎使用StackOverflow。您是否尝试过使用
文档。catalystname
?@ChrisSatchell类型错误:无法读取null的属性“catalystname”
什么是文档
?它是对象还是数组?@ChrisSatchell对象,可能是。没错,我得到了必要的数组,但现在我需要从这个数组中找到字符串catalystname
。我试图执行此操作,但控制台抛出错误:(节点:8904)弃用警告:collection.ensureIndex已弃用。改为使用createIndexes。
,输出:undefined
您正在查找的docs[index]。catalystname
,其中index
是您正在查找的项目的索引(在本例中可能是0
)docs['text']。catalystname
对吗?我只是不太明白它是如何工作的。在投入并创建机器人之前,您可能想先学习基本原理: