2016-04-06 4 views
0

これまでのコードでは、特定のキーを見つけることによってデータベースにクエリできます。私は関数の中に引数を渡して、ユーザーの検索がkey:valueクエリの 'value'になるようにしたいと考えています。現在、私はユーザーの議論が欲しい場所の代わりに「Cosmic Black」を持っています。ユーザーが検索ボックスに名前を入力させ、その検索に一致するすべての文書を検索することでmongoDBを照会しようとしています

var findMaterials = function(db, callback) { 
    var cursor = db.collection('materials').find({"material_name": "Cosmic Black"}); 
    cursor.each(function(err, doc) { 
     assert.equal(err, null); 
     if (doc !== null) { 
      console.log(doc); 
     } else { 
      callback(); 
     } 
    }); 
}; 

ここで引数を取得する方法や、現在のコード設定で可能なのかどうかわかりません。どんな考えでも大歓迎です。

+0

スクリプトをどのように実行していますか?コマンドラインでノードを入力していますか、特定のURLエンドポイントに達したときに実行しますか? – user2263572

+2

[検索バーを使ってウェブサイトを作成してmongoデータベースを検索するにはどうすればいいですか?](http://stackoverflow.com/questions/31176349/how-to-create-a-website-with-a-searchbar-to -query-a-mongo-database) –

+0

現在は開発中ですので、コマンドラインで実行していますが、最終的に特定のエンドポイントになります。 – MattP

答えて

0
var findMaterials = function(db, value, callback) { 
    var cursor = db.collection('materials').find({"material_name": value}); 
    cursor.each(function(err, doc) { 
     assert.equal(err, null); 
     if (doc !== null) { 
      console.log(doc); 
     } else { 
      callback(); 
     } 
    }); 
}; 

どのようにfindMaterials()を呼び出すのかは異なる質問です。このような何かがトリックを行う必要があります。

function doAllTheWork(url, value){ 
    MongoClient.connect(url, function(err, db) { 
     assert.equal(null, err); 
     findMaterials(db, value, function() { 
      db.close(); 
     }); 
    }); 
} 

何らかの種類のパラメータとして渡す値。 APIを構築する場合は、JSONからAPIを抜き出してください。 cmd行からすべてを実行している場合は、その方法論を使用して同じことを実行してください。

+0

MongoClient.connect(URL、function(err、db){ \t assert.equalヌル、ERR); \t findMaterials(DB、関数(){ \t \t db.close(); \t}); })。 – MattP

+0

@MattP上記のようなもの? – hownowbrowncow

関連する問題