2017-05-03 1 views
0

を動作していないテキスト検索複数のフィールドは私のモデルであり、マングース、ここで

var InternetSchema = new Schema({ 
    name: String, 
    company: String, 
    contactNumber:String, 
    accessToken:String, 
}); 

InternetSchema.index({name: 'text', company: 'text'); 
export default mongoose.model('Internet', InternetSchema); 

そして、ここでは、検索API

export function getSearchAccess(req, res) { 
    // const arr = [ 
    //  {name: req.params.term}, 
    //  {company: req.params.term} 
    // ] 
    console.log(req.params.term) 
    Internet.find({ 
     $text: { 
      $search: req.params.term 
     } 
    }).limit(10).exec(function(finderr, finddata) { 
     return res.json({ count: 10, data: finddata }); 
    }); 

} 

に反応する私の関数である。しかし、これが唯一のその文書を取り出すように見えますnameフィールドに一致します。これはcompanyフィールドと一致しません。

私はモンゴシェルでそれをテストしようとしている、そしてそれは会社のために任意のデータを取得しませんが、

+0

あなたはこれを理解したことがありますか?私は特に '名前'というフィールドは動作しますが、別のフィールドは '記述'という名前のフィールドと同じ問題を抱えています。 – blameitonsean

答えて

0

は「$または」演算子を使用しようとする名前のデータをフェッチん:

//examples from my app 
//User.js 
.. 
userSchema.index({login: 'text', fullname: 'text', email: 'text'}, {default_language: 'none'}); 

//query examples: 
User.find({"$or": [ { "fullname" : { $search: criteria }}, { "email" : { $search: criteria }}, { "login" : { $search: criteria }}]}); 
//or regexp 
User.find({"$or": [ { "fullname" : { $regex: criteria }}, { "email" : { $regex: criteria }}, { "login" : { $regex: criteria }}]}); 
+0

これはされていない仕事 –

+0

あなたは結果の中で見たいと思うクエリのパラメータといくつかのアイテムをデータベースから表示できますか? – Sergaros

+0

さて、私はメソッドを動作させましたが、まずインデックスを削除してから新しいインデックスを作成しました。 –

関連する問題