2016-05-09 11 views
0

Nodejsを使用してMongodbコレクションで全検索機能を実装したいと考えています。 SaleModel.find()に渡す必要があるので、コレクション全体で値を検索しますか?nodejsを使用して全体コレクション(mongodb)を検索

これは私が試したことですが、それはproduct_nameのみを検索し、sale_amount、sale_person、department_nameも検索したいと思います。

どうすればいいですか?

SaleModel.find({'product_name': 'searched value'}); 

スキーマ:急行ルートに関するサンプルがasync.parallel使用下に、私は非常に、より多くのクリーナーを書くでしょう

var saleSchema = mongoose.Schema({ 
    product_name:{ type:String, required:true}, 
    sale_amount:{ type:Number, required:true }, 
    sale_date:{ type:Date, default:Date() }, 
    sale_person:{ type:String, required:true }, 
    department:{ type:mongoose.Schema.Types.ObjectId, ref:'department' }, 
}); 
module.exports = mongoose.model('sale', saleSchema); 
+0

読むドキュメント、あなたの'list'関数が完全に混乱し、正しくない –

+0

' Models.SaleModel'があれば、ルータも表示しますmongooseモデル、mongooseは約束をサポートしていません。コールバックのみ –

+0

なぜ一致したデータの合計数と合計データが返されますか?合計データの長さは、それ自体カウントされます。 –

答えて

0

約束Mongoose.Query

function list(req) { 

    // promise or callback works as well 
    return new Promise(function(resolve, reject){ 

     // npm install async --save 
     var async = require('async'); 

     // some validation can be applied 
     var page = { 
      skip: req.query.start || 1, 
      limit: req.query.length || 25, 
      text: req.query.search || ''  // <== this is new property! 
     }; 

     // reuse Mongoose.Query with search by regex 
     var Query = Models.SaleModel.find({ 
      product_name: new RegExp(page.text, "i") 
     }); 

     // run without waiting until the previous function has completed 
     async.parallel([ 
      function(){ 
       Query.count(callback); // <== count 
      }, 
      function(){ 
       Query.skip(page.skip).limit(page.limit).exec('find', callback); // <== items 
       // or the below one should also work, just don't remember 
       // Query.skip(page.skip).limit(page.limit).exec(callback); 
      } 
     ]), function(err, results){ 
      if(err){ 
       reject(err); 
      } else { 
       resolve({ 
        count: results[0], 
        data: results[1] 
       }); 
      } 
     }); 
    }); 
} 
+0

ルックス良い!このソリューションで検索ロジックをどのように適用できますか? –

+0

更新され、心に留めてください、決して質問を大幅に変更しないでください、あなたは1000シンボルを削除しました –

+0

私はそれを試してみます.. –

関連する問題