Express MongoDB find()基于_id字段

dan*_*mcr 2 javascript mongodb node.js express mongodb-query

所以在我的快递应用中,我试图根据我的_id字段找到().

请参阅下面的MongoDB记录.

{
        "_id": {
            "$oid": "58c2a5bdf36d281631b3714a"
        },
        "title": "EntertheBadJah",
        "subTitle": "Lorem ipsum dolor",
        "thmbNailImg": "",
        "headerImg": "",
         ... BLAH BLAH BLAH
Run Code Online (Sandbox Code Playgroud)

当我使用时.find( _id: id ),我的id参数= 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);
        });

});
Run Code Online (Sandbox Code Playgroud)

任何帮助或建议表示赞赏.先感谢您.

编辑:(我的修订查询)

//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)
    });

});
Run Code Online (Sandbox Code Playgroud)

article目前正在返回NULL.

NER*_*ARD 5

db.collection('articles')
    .find( {"_id.$oid": id} )
    .
Run Code Online (Sandbox Code Playgroud)

甚至更具体:

db.collection('articles')
    .findOne( {"_id.$oid": id} )
    .
Run Code Online (Sandbox Code Playgroud)

编辑:
在查询之前将字符串转换为ObjectId类型

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

参考:如果我有一个mongo文件ID作为字符串我如何查询它作为_id?