首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongoosejs文本索引对象

Mongoosejs文本索引对象
EN

Stack Overflow用户
提问于 2017-05-16 19:07:30
回答 1查看 1K关注 0票数 1

目前,我在object中引用文本索引时遇到问题,代码如下

模式

代码语言:javascript
复制
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接口

代码语言:javascript
复制
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对象进行文本索引搜索。

但是它仍然不工作这是我在数据库中的数据

我搜索了"dog“或"shiba”,但仍然没有返回任何结果。

我的另一个使用文本索引的功能工作得很好,唯一的区别是,我的文本索引不是一个对象,它只是一个字符串属性,它工作得很好

我做错了吗?

EN

回答 1

Stack Overflow用户

发布于 2017-07-25 00:27:00

根据documentation,您只能在字符串或字符串数组上创建文本索引,而不能在对象(恰好包含字符串)上创建文本索引。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43999777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档