2017-03-14 17 views
1

私のエクスプレスアプリケーションでは、私の_idフィールドに基づいて()を検索しようとしています。エクスプレスMongoDB find()_idフィールドに基づいて

以下のMongoDBレコードを参照してください。

{ 
     "_id": { 
      "$oid": "58c2a5bdf36d281631b3714a" 
     }, 
     "title": "EntertheBadJah", 
     "subTitle": "Lorem ipsum dolor", 
     "thmbNailImg": "", 
     "headerImg": "", 
     ... BLAH BLAH BLAH 

私は.find(_id: id)、 私idのparam = 58c2a5bdf36d281631b3714aを使用しています。

私はMongoDBレコードを取得するためにどのように変換/使用しますか?

//GET ARTICLE 
app.get('/api/article', (req, res) => { 

    var id = req.query.id 
    var article = []; 

    db.collection('articles') 
     .find(_id: id) 
     .then(result => { 
      article = articles.concat(result); 
     }).then(() => { 
      res.send(article); 
     }).catch(e => { 
      console.error(e); 
     }); 

}); 

すべてのヘルプやアドバイスが高く評価されています

は、ここに私のエクスプレス呼び出しです。前もって感謝します。

EDIT:(私の改訂クエリ)

//GET ARTICLE 
app.get('/api/article', (req, res) => { 

    var id = req.query.id 

    db.collection('articles').findOne({ 
     "_id.$oid": id 
    }, function(err, article) { 
     res.send(article); 
     console.log(article) 
    }); 

}); 

article is Currently returning NULL.

+1

をこの、 'db.collection( '記事')を試す見つける({ "_id $ OID。":ID})。' HTTPS://docs.mongodb。 com/v3.2/core/document /#embedded-documents –

+0

ちょうど試してみましたが、 "MongoError:クエリーセレクタがオブジェクトでなければなりません"という返信が返ってきた@ajaiJothi –

+0

私の答えが更新されました。今すぐチェックしてください –

答えて

3
db.collection('articles') 
    .find({"_id.$oid": id}) 
    . 

またはそれ以上の特定:

db.collection('articles') 
    .findOne({"_id.$oid": id}) 
    . 

EDIT:
のObjectId型に文字列を変換します

var ObjectID = require('mongodb').ObjectID; 
db.collection('articles') 
    .findOne({"_id.$oid": new ObjectID(id)}) 
    . 

リファレンス問い合わせる前に:If i have a mongo document id as a string how do I query for it as an _id?

+0

yesss、my mannn –

関連する問題