2017-07-17 19 views
0

私はデータベースにあるすべての文書の特定の値に高速ルートを使用してURLをマップしようとしています。すべてのMongoDB文書のURLを作成する方法

たとえば、スキーマのcompany.nameは会社名を返します。

company.nameの値を一意のURLに設定する方法はありますか?

私はそれがループを作成したり、データベースを反復処理し、私はからデータベースのコレクションにアクセスするかどうかはわかりませんが

app.get('/' + name , function (req , res) { 
    res.render('company.jade'); 
}); 

に設定するマングースの.findを使用していたと思った唯一の方法routesファイル。

const Company = require('.models/company'); 

を使用すると、そうするかわからデータベースをしませ返しません。

私はまだMongooseやnode.jsでヒップアップしていません。本当にこの1つのことをする必要があり、アプリケーションの残りの部分は私がよりよく知っている角度で行われます。

うまくいけば、私はここでいくつか意味を作った。私はアプリのコードを持っているが、それはapp.jsとroutes.jsのすべての基本コードだ。私はそれが役に立ちそうなら、私はそれを加えることができます。

+0

たとえば、MongoDBドキュメントを表示して、実行したいことを明確にすることはできますか? –

+0

私はコメントのためにそれを短縮する必要がありますが、本質的には{company {'name':Microsoft}}、{company {'name':Apple}}と私はURL/Microsoft/Appleなどを生成したい。申し訳ありませんが明確でない場合 –

+0

このようなことは、一般的にGETまたはPOST要求で行う必要があります。あなたのサーバーが設定されている方法を知らないと、これは少し難解です。 – DavidBittner

答えて

1

あなたはマングースを探していますfindOnequery

const Company = require('.models/company'); 

app.get('/:name', function(req, res){ 
Company.findOne({'company.name': req.params.name}) //company.name depends upon the schema you set. 
.then(function(company){ 
    if (company) 
    return res.send({success: true, data: company}); //return company as an object containing the queried company document. 

    else 
    return res.send({success: false, error: 'Company not found'}); 

}) 
.catch(function(err){ 
    if (err) res.send({success: false, error: err}); 
}); 
}); 
+0

これはまさに私が探していたものです。ありがとうございます。私はたくさんのことを試していたし、私は正しいクエリを使用していなかったように見える、ありがとう –

関連する問題