目前我有关于在对象中引用文本索引的问题 这是代码
模式
var UserSchema = new mongoose.Schema({
username: String,
fullname: String,
email: {
type: String,
lowercase: true,
unique: true
},
supplier: Boolean,
supplierdetails: {
name: String,
businesstype: String,
location: String,
products: String,
revenue: String,
employees: String,
yearsestablished: String
}
});
UserSchema.index({supplierdetails: 'text'});
module.exports = mongoose.model('User', UserSchema);
API
router.post('/findsupplier', function(req, res){
User.find({supplier: true, $text: {$search: req.body.supplyData}}, {score: {$meta: 'textScore'}})
.sort({score: {$meta: 'textScore'}})
.exec(function(err, supplyResult){
if(err)
throw err;
else
res.json(supplyResult);
});
});
正如你在这里看到的那样,“supplierdetails”是我架构上的一个对象,我告诉mongoosejs对它进行文本索引,因为我想对整个supplierdetails对象进行文本索引搜索,该对象包含name,businesstype,products,location等等。我在我的mongo shell上看到了创建的索引
但它仍然没有用 这是我的数据库数据
我搜索了“狗”或“shiba”,但仍然没有给我留下任何结果。
我使用文本索引的其他功能完全正常,唯一的区别是,我的文本索引不是一个对象,它只是一个String属性,它完美地工作
我做错了吗?