sql >> データベース >  >> NoSQL >> MongoDB

国でフィルタリングし、マングースを使用してmongodbをフリーテキスト検索します

    まず第一に、$textを実行することを知っていることを願っています ベースのクエリには、テキストベースのインデックス その特定の分野で。

    第二に、あなたはコールバックと約束を混乱させているようです-

    私が見ることができるようにあなたのquery() query()を呼び出しているときに、関数はまだpromiseを返しています コールバックを期待している関数。約束はすぐにあなたに返され、それからあなたはそれらを解決する必要があります。

    コードは次のようになります-

    dbHelper.query(mongoose.model('events'), {$text: {$search: "Ade"},'place.location.country': "Australia"})
    .then(function(result)){
        // you have your data here
    }
    .catch(function(err)){
        // an error occured
    }
    

    約束についてもっと読む こちら

    私が気付くことができるもう1つの小さなバグは、query()にあります。 方法。 if statement 中括弧を使用しないため、if statementの直後のステートメントのみを使用します。 ifの下で実行されます 句。 ifの後の2番目のステートメント 常に実行されます-

    だから、

    if(error)
        console.log(error);
    // always executed
    reject(error);
    resolve(data);
    

    する必要があります-

    if(error){
        console.log(error);
        reject(error);
    }
    resolve(data);
    

    ここでは全体像を見ることができないため、これらすべてがコードを機能させることができるかどうかはまだわかりません。私は、javascriptとMongoDBの基本をカバーするためにもう少し時間を費やすことをお勧めします。あなたが多くの時間を節約するのに役立ちます。さらに言えば、MongoDBの公式ドキュメント 本当に良いです。




    1. mongodbの小数点以下第2位に四捨五入

    2. PyMongoおよびtoArray()メソッド

    3. MongoDB Stitchは、データを数値自体ではなく$NumberDoubleとして返します

    4. Redisデータ構造から複数の値をアトミックにポップしますか?